Spaces:
Sleeping
Sleeping
Cardanoian
commited on
Commit
β’
45f40c1
1
Parent(s):
508162a
Upload 2 files
Browse files- api_function.py +85 -0
- app.py +12 -0
api_function.py
ADDED
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# -*- coding: utf-8 -*-
|
2 |
+
import os
|
3 |
+
|
4 |
+
|
5 |
+
import base64
|
6 |
+
import json
|
7 |
+
import http.client
|
8 |
+
|
9 |
+
# .env νμΌμμ νκ²½ λ³μ λ‘λ
|
10 |
+
# Localμμλ§ μ¬μ©
|
11 |
+
from dotenv import load_dotenv
|
12 |
+
|
13 |
+
load_dotenv()
|
14 |
+
|
15 |
+
# νκ²½ λ³μ κ°μ Έμ€κΈ°
|
16 |
+
api_key_primary_val = os.getenv("api_key_primary_val")
|
17 |
+
API_KEY = os.getenv("API_KEY")
|
18 |
+
|
19 |
+
print(api_key_primary_val, API_KEY)
|
20 |
+
|
21 |
+
|
22 |
+
def request_hyper(subject, capacity, text):
|
23 |
+
class CompletionExecutor:
|
24 |
+
def __init__(self, host, api_key, api_key_primary_val, request_id):
|
25 |
+
self._host = host
|
26 |
+
self._api_key = api_key
|
27 |
+
self._api_key_primary_val = api_key_primary_val
|
28 |
+
self._request_id = request_id
|
29 |
+
|
30 |
+
def _send_request(self, completion_request):
|
31 |
+
headers = {
|
32 |
+
"Content-Type": "application/json; charset=utf-8",
|
33 |
+
"X-NCP-CLOVASTUDIO-API-KEY": self._api_key,
|
34 |
+
"X-NCP-APIGW-API-KEY": self._api_key_primary_val,
|
35 |
+
"X-NCP-CLOVASTUDIO-REQUEST-ID": self._request_id,
|
36 |
+
}
|
37 |
+
|
38 |
+
conn = http.client.HTTPSConnection(self._host)
|
39 |
+
conn.request(
|
40 |
+
"POST",
|
41 |
+
"/testapp/v1/chat-completions/HCX-002",
|
42 |
+
json.dumps(completion_request),
|
43 |
+
headers,
|
44 |
+
)
|
45 |
+
response = conn.getresponse()
|
46 |
+
result = json.loads(response.read().decode(encoding="utf-8"))
|
47 |
+
conn.close()
|
48 |
+
return result
|
49 |
+
|
50 |
+
def execute(self, completion_request):
|
51 |
+
res = self._send_request(completion_request)
|
52 |
+
if res["status"]["code"] == "20000":
|
53 |
+
return res["result"]["message"]
|
54 |
+
else:
|
55 |
+
return "Error"
|
56 |
+
|
57 |
+
completion_executor = CompletionExecutor(
|
58 |
+
# host='clovastudio.apigw.ntruss.com',
|
59 |
+
host="clovastudio.stream.ntruss.com",
|
60 |
+
api_key=API_KEY,
|
61 |
+
api_key_primary_val=api_key_primary_val,
|
62 |
+
request_id="624e45b741574fbab1fae6a6ea99b3a7",
|
63 |
+
)
|
64 |
+
|
65 |
+
# text = subject + "μ λν " + "Bloomμ μ§λ¬Έ λΆλ₯ μ€ " + capacity + "μ μ§λ¬Έμ ν΄λΉνλ μ§λ¬Έ 10κ° λ§λ€μ΄μ€."
|
66 |
+
# preset_text = [{"role":"system","content":"λΈλ£Έμ μ§λ¬Έ λΆλ₯ 6κ°μ§μ λ°λΌ μ£Όμ΄μ§ μ£Όμ μ λν μ§λ¬Έμ μμ±ν΄μ€.\n"},{"role":"user","content":"κ°κ΅¬λ¦¬μ λν μ§μμ μ§λ¬Έμ λ§λ€μ΄μ€"},{"role":"assistant","content":"κ°κ΅¬λ¦¬μ νλͺ
μ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ λ¨Ήμ΄λ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μ²μ μ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μ°λ μκΈ°λ μΈμ μΈκ°μ? κ°κ΅¬λ¦¬μ 체μ¨μ μ΄λ»κ² μ‘°μ λλμ? κ°κ΅¬λ¦¬μ νΌλΆμλ μ΄λ€ νΉμ§μ΄ μλμ? κ°κ΅¬λ¦¬μ νΈν‘ λ°©λ²μ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μ’
λ₯λ λͺ κ°μ§ μΈκ°μ? κ°κ΅¬λ¦¬μ μλͺ
μ μΌλ§λ λλμ? κ°κ΅¬λ¦¬μ λ
μ μ΄λμ λμ€λμ? κ°κ΅¬λ¦¬λ₯Ό λ¨Ήλ λλ¬Όμ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μΈμμ리λ μ΄λ»κ² λ΄λμ? κ°κ΅¬λ¦¬μ λκΊΌλΉλ λ¬΄μ¨ μ°¨μ΄κ° μλμ? κ°κ΅¬λ¦¬μμ λΆννλλ° μΌλ§λ 걸리λμ? \n\nμμ μ§λ¬Έλ€μ κ°κ΅¬λ¦¬μ λν κΈ°λ³Έμ μΈ μ§μμ 묻λ μ§λ¬Έλ€μ
λλ€. μ΄ μΈμλ κ°κ΅¬λ¦¬μ λν λ€μν μ§λ¬Έμ λ§λ€ μ μμ΅λλ€. μλ₯Ό λ€μ΄, κ°κ΅¬λ¦¬μ μ±μ₯ κ³Όμ , κ°κ΅¬λ¦¬μ μνκ³μμμ μν , κ°κ΅¬λ¦¬μ μ μ νμ μ°κ΅¬ λ±μ λν μ§λ¬Έμ λ§λ€ μ μμ΅λλ€. μ΄λ¬ν μ§λ¬Έλ€μ κ°κ΅¬λ¦¬μ λν κΉμ΄ μλ μ§μμ μꡬνλ©°, κ°κ΅¬λ¦¬μ λν μ΄ν΄λ₯Ό λμ΄λ λ° λμμ΄ λ©λλ€."},{"role":"user","content":"κ°κ΅¬λ¦¬μ λν μ μ©μ μ§λ¬Έμ λ§λ€μ΄μ€"},{"role":"assistant","content":"κ°κ΅¬λ¦¬μ μ νλ ₯μ μ΄μ©νμ¬ ν μ μλ μ€ν¬μΈ λ 무μμ΄ μμκΉμ? κ°κ΅¬λ¦¬μ λ¨Ήμ΄ μ¬λ₯ λ°©μμ νμ©ν λ‘λ΄μ λ§λ€ μ μμκΉμ? κ°κ΅¬λ¦¬μ νΌλΆ ꡬ쑰λ₯Ό λͺ¨λ°©ν νμ₯νμ κ°λ°ν μ μμκΉμ? κ°κ΅¬λ¦¬μ μΈμμ리λ₯Ό μ΄μ©νμ¬ μμ
μ μ곑ν μ μμκΉμ? κ°κ΅¬λ¦¬μ μνλ₯Ό κ΄μ°°νμ¬ νκ²½ 보νΈμ νμ©ν μ μμκΉμ? κ°κ΅¬λ¦¬μ λ
μ μ΄μ©νμ¬ μμ½νμ κ°λ°ν μ μμκΉμ? κ°κ΅¬λ¦¬μ μ μ μλ₯Ό μ‘°μνμ¬ μλ‘μ΄ μλ¬Όμ λ§λ€ μ μμκΉμ? κ°κ΅¬λ¦¬μ μμμ§λ₯Ό 보쑴νκΈ° μν΄ μ°λ¦¬κ° ν μ μλ μΌμ κ°κ΅¬λ¦¬μ λ©Έμ’
μ λ§κΈ° μν΄ μ°λ¦¬κ° ν΄μΌ ν μΌμ 무μμΌκΉμ? κ°κ΅¬λ¦¬μ νΉμ±μ μ΄μ©νμ¬ μΈκ° μνμ νμ©ν μ μλ λ°©λ²μ 무μμΌκΉμ? μμ μ§λ¬Έλ€μ κ°κ΅¬λ¦¬μ νΉμ±μ λ€λ₯Έ λΆμΌμ μ μ©νκ±°λ, κ°κ΅¬λ¦¬μ λ¬Έμ λ₯Ό ν΄κ²°νλ λ° μ΄μ μ λ§μΆ μ§λ¬Έλ€μ
λλ€. μ΄λ¬ν μ§λ¬Έλ€μ ν΅ν΄ κ°κ΅¬λ¦¬μ λν μ§μμ μ€μ μν©μ μ μ©νλ λ₯λ ₯μ ν€μΈ μ μμ΅λλ€."},{"role":"user","content":"κ³°μ λν μ’
ν©μ μ§λ¬Έμ λ§λ€μ΄μ€"},{"role":"assistant","content":"κ³°μ μ’
λ₯λ 무μμ΄ μλμ? κ³°μ λͺΈλ¬΄κ²λ μ΄λ μ λμΈκ°μ? κ³°μ μλͺ
μ μΌλ§λ λλμ? κ³°μ νΈ μκΉμ μ λ€μνκ°μ? κ³°μ μ£Όμμ 무μμΈκ°μ? κ³°οΏ½οΏ½οΏ½ μ²μ μ 무μμΈκ°μ? κ³°μ μ§μ§κΈ° μκΈ°λ μΈμ μΈκ°μ? κ³°μ μΆμ°μ¨μ μ΄λ μ λμΈκ°μ? κ³°μ 겨μΈμ μ μΈμ λΆν° μΈμ κΉμ§ μλμ? κ³°μ 곡격μ±μ μ΄λ μ λμΈκ°μ? κ³°μ μμμ§λ μ΄λμΈκ°μ? κ³°μ λ©Έμ’
μκΈ°μ’
μ 무μμΈκ°μ? κ³°μ μ¬νμ±μ μ΄λ€κ°μ? κ³°μ μ§λ₯μ μ΄λ μ λμΈκ°μ? κ³°μ λ°μ κΈ° λ νλ νλμ 무μμΈκ°μ? κ³°μ λ°ν±μ μ΄λ€ μ©λλ‘ μ¬μ©λλμ? κ³°μ λ°λ°λ₯μ μ λΆλλ¬μ΄κ°μ? κ³°μ μ΄λΉ¨μ μ΄λ€ λͺ¨μμΈκ°μ? κ³°μ λμ μ΄λ€ νΉμ§μ΄ μλμ? κ³°μ κ·λ μ΄λ€ λͺ¨μμΈκ°μ? κ³°μ μ½λ μ΄λ€ κΈ°λ₯μ νλμ? κ³°μ λ°°μ€λ¬Όμ μ΄λ€ νΉμ§μ΄ μλμ? κ³°μ λΌλ μ΄λ€ νΉμ§μ΄ μλμ? κ³°μ κ·Όμ‘μ μ΄λ€ νΉμ§μ΄ μλμ? κ³°μ μ¬μ₯μ μ΄λ€ κΈ°λ₯μ νλμ? κ³°μ λλ μ΄λ€ νΉμ§μ΄ μλμ? κ³°μ νμ‘μ μ΄λ€ νΉμ§μ΄"},{"role":"user","content":"κΈ°μ°¨μ λν νκ°μ μ§λ¬Έμ λ§λ€μ΄μ€"},{"role":"assistant","content":"κΈ°μ°¨μ μλλ λΉ λ₯Έκ°μ? κΈ°μ°¨μ μμ μ±μ λμκ°μ? κΈ°μ°¨μ μΉμ°¨κ°μ μ’μκ°μ? κΈ°μ°¨μ νΈμ μμ€μ μ κ°μΆ°μ Έ μλμ? κΈ°μ°¨μ κ°κ²©μ λΉμΌκ°μ? κΈ°μ°¨μ μ΄ν μκ°μ κ·μΉμ μΈκ°μ? κΈ°μ°¨μ κ΅ν΅ 체μ¦μ μ¬νκ°μ? κΈ°μ°¨μ λκΈ° μκ°μ κΈ΄κ°μ? κΈ°μ°¨μ λ
Έμ μ λ€μνκ°μ? κΈ°μ°¨μ μλΉμ€λ μΉμ νκ°μ? κΈ°μ°¨μ μ μ μ΄νλ₯ μ λμκ°μ? κΈ°μ°¨μ μμμ ν°κ°μ? κΈ°μ°¨μ μ§λμ μ¬νκ°μ? κΈ°μ°¨μ νκ²½ μ€μΌμ μ¬νκ°μ? κΈ°μ°¨μ μλμ§ ν¨μ¨μ λμκ°μ? κΈ°μ°¨μ μ μ§λ³΄μλ μ μ΄λ£¨μ΄μ§κ³ μλμ? \nμμ μ§λ¬Έλ€μ κΈ°μ°¨μ μ±λ₯, μμ μ±, νΈμμ±, κ²½μ μ± λ±μ νκ°νλ λ° νμν μ§λ¬Έλ€μ
λλ€. κ° μ§λ¬Έμ λν λ΅μ λΉκ΅ λΆμνμ¬ κΈ°μ°¨μ μ₯λ¨μ μ νμ
νκ³ , μμ μκ² λ§λ κΈ°μ°¨λ₯Ό μ νν μ μμ΅λλ€."},{"role":"user","content":"κ°κ΅¬λ¦¬μ λν λ
Όμμ μ§λ¬Έμ λ§λ€μ΄μ€"},{"role":"assistant","content":"κ°κ΅¬λ¦¬μ μμ© μ¬λΆμ λν΄ μ΄λ»κ² μκ°νμλμ? κ°κ΅¬λ¦¬μ μνκ³ νκ΄΄μ λν΄ μ΄λ»κ² λμ²ν΄μΌ ν κΉμ? κ°κ΅¬λ¦¬μ λ©Έμ’
μκΈ°λ₯Ό λ§κΈ° μν΄ μ΄λ€ λ
Έλ ₯μ΄ νμν κΉμ? κ°κ΅¬λ¦¬μ μΈκ³΅ λ²μμ λν΄ μ΄λ»κ² μκ°νμλμ? κ°κ΅¬λ¦¬μ μ μ μ μ‘°μμ λν΄ μ΄λ»κ² μκ°νμλμ? κ°κ΅¬λ¦¬μ μ¬μ‘μ λν΄ μ΄λ»κ² μκ°νμλμ? κ°κ΅¬λ¦¬μ λΆλ² ν¬νμ λν΄ μ΄λ»κ² μ²λ²ν΄μΌ ν κΉμ? κ°κ΅¬λ¦¬μ μ§λ³ μλ°© λμ±
μ 무μμΌκΉμ? κ°κ΅¬λ¦¬μ κ±΄κ° μ¦μ§ λ°©μμ 무μμΌκΉμ? κ°κ΅¬λ¦¬μ κ΅μ‘μ κ°μΉμ λν΄ μ΄λ»κ² μκ°νμλμ? κ°κ΅¬λ¦¬μ λ¬Ένμ κ°μΉμ λν΄ μ΄λ»κ² μκ°νμλμ? κ°κ΅¬λ¦¬μ μ°μ
μ κ°μΉμ λν΄ μ΄λ»κ² μκ°νμλμ? \n\nμμ μ§λ¬Έλ€μ κ°κ΅¬λ¦¬μ λν λ€μν μ견과 견ν΄λ₯Ό λλ μ μλ λ
Όμμ μ§λ¬Έλ€μ
λλ€. μ΄λ¬ν μ§λ¬Έλ€μ ν΅ν΄ κ°κ΅¬λ¦¬μ λν κ΄μ¬μ λμ΄κ³ , μλ‘ λ€λ₯Έ μ견μ μ‘΄μ€νκ³ μν΅νλ κΈ°νλ₯Ό μ»μ μ μμ΅λλ€."},{"role":"user","content":"κ°κ΅¬λ¦¬μ λν κ°λ
μ μ§λ¬Έμ λ§λ€μ΄μ€"},{"role":"assistant","content":"κ°κ΅¬λ¦¬μ μ μλ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ νΉμ§μ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ λΆλ₯λ μ΄λ»κ² λλμ? κ°κ΅¬λ¦¬μ μ§ν κ³Όμ μ μ΄λ»κ² λλμ? κ°κ΅¬λ¦¬μ μννμ μν μ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μλ¬Όνμ νΉμ§μ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μ리νμ νΉμ§μ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μ μ νμ νΉμ§μ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μννμ νΉμ§μ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μμ¬μ λ¬Ένμ μλ―Έλ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ λ―Έλ μ λ§μ μ΄λ¨κΉμ? κ°κ΅¬λ¦¬μ κ³Όνμ μ°κ΅¬λ μ΄λ»κ² μ΄λ£¨μ΄μ§κ³ μλμ? κ°κ΅¬λ¦¬μ λμ€μ μΈμμ μ΄λ€κ°μ? κ°κ΅¬λ¦¬μ μ€λ¦¬μ λ¬Έμ λ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μ¬νμ λ¬Έμ λ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μ μΉμ λ¬Έμ λ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ κ΅μ μ λ¬Έμ λ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μ² νμ λ¬Έμ λ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μ’
κ΅μ λ¬Έμ λ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μμ μ λ¬Έμ λ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ λ¬Ένμ λ¬Έμ λ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ μ¬λ¦¬νμ λ¬Έμ λ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ κ΅μ‘μ λ¬Έμ λ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ 체μ‘νμ λ¬Έμ λ 무μμΈκ°μ? κ°κ΅¬λ¦¬μ κΈ°μ μ λ¬Έμ λ 무μμΈκ°μ?"}]
|
67 |
+
|
68 |
+
preset_text = [
|
69 |
+
{"role": "system", "content": "λΈλ£Έμ μ§λ¬Έ λΆλ₯ 6κ°μ§μ λ°λΌ μ£Όμ΄μ§ μ£Όμ μ λν μ§λ¬Έμ μμ±ν΄μ€.\n"},
|
70 |
+
{"role": "user", "content": text},
|
71 |
+
]
|
72 |
+
|
73 |
+
request_data = {
|
74 |
+
"messages": preset_text,
|
75 |
+
"maxTokens": 3000,
|
76 |
+
"temperature": 0.8,
|
77 |
+
"topK": 0,
|
78 |
+
"topP": 0.8,
|
79 |
+
"repeatPenalty": 5.0,
|
80 |
+
"stopBefore": [],
|
81 |
+
"includeAiFilters": True,
|
82 |
+
}
|
83 |
+
|
84 |
+
response_text = completion_executor.execute(request_data)
|
85 |
+
return response_text["content"]
|
app.py
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
from api_function import request_hyper
|
3 |
+
|
4 |
+
with gr.Blocks() as demo:
|
5 |
+
gr.Textbox("μΆ©μ²λ μ¬ν¬λ¦¬λ‘ λλ΅ν΄ μ€λλ€.")
|
6 |
+
input_text = gr.Markdown("# μΆ©μ²λ μ¬ν¬λ¦¬ AI")
|
7 |
+
send_btn = gr.Button("λ΅λ³ 보λ΄κΈ°")
|
8 |
+
ai_text = gr.Textbox("AIμ λ΅λ³")
|
9 |
+
|
10 |
+
send_btn.click(request_hyper, inputs=input_text, outputs=ai_text)
|
11 |
+
|
12 |
+
demo.launch()
|