Spaces:
Running
Running
powerwarez
commited on
Commit
โข
f6ace39
1
Parent(s):
b84de7e
Upload 2 files
Browse files
api_fn.py
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# -*- coding: utf-8 -*-
|
2 |
+
import gradio as gr
|
3 |
+
import requests
|
4 |
+
import json
|
5 |
+
import os
|
6 |
+
|
7 |
+
api_key_primary_val = os.getenv('api_key_primary_val')
|
8 |
+
api_key = os.getenv('api_key')
|
9 |
+
|
10 |
+
def request_hyper(message):
|
11 |
+
class CompletionExecutor:
|
12 |
+
def __init__(self, host, api_key, api_key_primary_val, request_id):
|
13 |
+
self._host = host
|
14 |
+
self._api_key = api_key
|
15 |
+
self._api_key_primary_val = api_key_primary_val
|
16 |
+
self._request_id = request_id
|
17 |
+
|
18 |
+
def execute(self, completion_request):
|
19 |
+
headers = {
|
20 |
+
'X-NCP-CLOVASTUDIO-API-KEY': self._api_key,
|
21 |
+
'X-NCP-APIGW-API-KEY': self._api_key_primary_val,
|
22 |
+
'X-NCP-CLOVASTUDIO-REQUEST-ID': self._request_id,
|
23 |
+
'Content-Type': 'application/json; charset=utf-8',
|
24 |
+
'Accept': 'text/event-stream'
|
25 |
+
}
|
26 |
+
|
27 |
+
with requests.post(self._host + '/testapp/v1/chat-completions/HCX-002',
|
28 |
+
headers=headers, json=completion_request, stream=False) as r:
|
29 |
+
stop_reason = ""
|
30 |
+
messages = []
|
31 |
+
for line in r.iter_lines():
|
32 |
+
if line:
|
33 |
+
raw_data = line.decode("utf-8")
|
34 |
+
if raw_data.startswith('data:'):
|
35 |
+
json_part = raw_data.split('data:', 1)[1].strip()
|
36 |
+
decoded_text = json.loads(json_part)
|
37 |
+
message_content = decoded_text["message"]["content"]
|
38 |
+
stop_reason = decoded_text["stopReason"]
|
39 |
+
print(f"๋ฉ์์ง:{message_content}")
|
40 |
+
messages.append(message_content)
|
41 |
+
# yield "AI : " + message_content
|
42 |
+
# print(f"๋ฉ์์ง:{message},{stop_reason}๋")
|
43 |
+
if stop_reason == "stop_before":
|
44 |
+
print("stop_before ์ถ๋ ฅ. ๋ฐ๋ณต ์ข
๋ฃ")
|
45 |
+
print(f"messages:{messages}")
|
46 |
+
return messages
|
47 |
+
# return line.decode("utf-8")
|
48 |
+
|
49 |
+
|
50 |
+
|
51 |
+
completion_executor = CompletionExecutor(
|
52 |
+
host='https://clovastudio.stream.ntruss.com',
|
53 |
+
api_key=api_key,
|
54 |
+
api_key_primary_val=api_key_primary_val,
|
55 |
+
request_id='73f8978312ed4ca0bbef6fa7f86edfc3'
|
56 |
+
)
|
57 |
+
# text = "์๋
?"
|
58 |
+
preset_text = [{"role":"system","content":"๋๋ต์ ํ์ง๋ง. ๋ค์ ์ง๋ฌธ์ ๋ธ๋ฃธ์ ์ง๋ฌธ์ ๋จ๊ณ ์ค ๋ช ๋ฒ์งธ ๋จ๊ณ์ ํด๋นํ๋ ์ง๋ฌธ์ธ์ง ์๋ ค์ฃผ๊ณ ํผ๋๋ฐฑ ํด์ค."},{"role":"user","content":message}]
|
59 |
+
|
60 |
+
request_data = {
|
61 |
+
'messages': preset_text,
|
62 |
+
'topP': 0.8,
|
63 |
+
'topK': 0,
|
64 |
+
'maxTokens': 3000,
|
65 |
+
'temperature': 0.5,
|
66 |
+
'repeatPenalty': 5.0,
|
67 |
+
'stopBefore': [],
|
68 |
+
'includeAiFilters': True
|
69 |
+
}
|
70 |
+
|
71 |
+
print(f"ํ๋ฆฌ์
ํ
์คํธ: {preset_text}")
|
72 |
+
completion_result = completion_executor.execute(request_data)
|
73 |
+
return completion_result
|
app.py
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import time
|
2 |
+
import gradio as gr
|
3 |
+
from api_fn import request_hyper
|
4 |
+
|
5 |
+
def echo(message, history):
|
6 |
+
result = request_hyper(message)
|
7 |
+
msg_text = ""
|
8 |
+
for msg in result:
|
9 |
+
msg_text += msg
|
10 |
+
yield "AI : " + msg_text
|
11 |
+
time.sleep(0.1)
|
12 |
+
|
13 |
+
|
14 |
+
demo = gr.ChatInterface(echo).queue()
|
15 |
+
demo.launch()
|