powerwarez commited on
Commit
f6ace39
โ€ข
1 Parent(s): b84de7e

Upload 2 files

Browse files
Files changed (2) hide show
  1. api_fn.py +73 -0
  2. app.py +15 -0
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()