|
|
|
|
|
import gradio as gr |
|
from huggingface_hub import InferenceClient |
|
import os |
|
import requests |
|
|
|
|
|
hf_client = InferenceClient("CohereForAI/c4ai-command-r-plus-08-2024", token=os.getenv("HF_TOKEN")) |
|
|
|
def respond( |
|
message, |
|
history: list[tuple[str, str]], |
|
system_message="", |
|
max_tokens=7860, |
|
temperature=0.8, |
|
top_p=0.9, |
|
): |
|
system_prefix = """ |
|
[์์คํ
ํ๋กฌํํธ ๋ด์ฉ...] |
|
""" |
|
|
|
messages = [{"role": "system", "content": f"{system_prefix} {system_message}"}] |
|
for val in history: |
|
if val[0]: |
|
messages.append({"role": "user", "content": val[0]}) |
|
if val[1]: |
|
messages.append({"role": "assistant", "content": val[1]}) |
|
messages.append({"role": "user", "content": message}) |
|
|
|
response = "" |
|
try: |
|
for message in hf_client.chat_completion( |
|
messages, |
|
max_tokens=max_tokens, |
|
stream=True, |
|
temperature=temperature, |
|
top_p=top_p, |
|
): |
|
token = message.choices[0].delta.content |
|
if token is not None: |
|
response += token.strip("") |
|
yield response |
|
except Exception as e: |
|
yield f"Error: {str(e)}" |
|
|
|
|
|
interface = gr.ChatInterface( |
|
respond, |
|
additional_inputs=[ |
|
gr.Textbox(label="System Message", value="Write(output) in ํ๊ตญ์ด."), |
|
gr.Slider(minimum=1, maximum=8000, value=7000, label="Max Tokens"), |
|
gr.Slider(minimum=0, maximum=1, value=0.7, label="Temperature"), |
|
gr.Slider(minimum=0, maximum=1, value=0.9, label="Top P"), |
|
], |
|
examples=[ |
|
["ํํ์ง ์์ค์ ํฅ๋ฏธ๋ก์ด ์์ฌ 10๊ฐ์ง๋ฅผ ์ ์ํ๋ผ"], |
|
["๊ณ์ ์ด์ด์ ์์ฑํ๋ผ"], |
|
["Translate into English"], |
|
["๋ง๋ฒ ์์คํ
์ ๋ํด ๋ ์์ธํ ์ค๋ช
ํ๋ผ"], |
|
["์ ํฌ ์ฅ๋ฉด์ ๋ ๊ทน์ ์ผ๋ก ๋ฌ์ฌํ๋ผ"], |
|
["์๋ก์ด ํํ์ง ์ข
์กฑ์ ์ถ๊ฐํ๋ผ"], |
|
["๊ณ ๋ ์์ธ์ ๋ํด ๋ ์์ธํ ์ค๋ช
ํ๋ผ"], |
|
["์ฃผ์ธ๊ณต์ ๋ด๋ฉด ๋ฌ์ฌ๋ฅผ ์ถ๊ฐํ๋ผ"], |
|
], |
|
title="Fantasy Novel AI Generation", |
|
cache_examples=False, |
|
theme="Yntec/HaleyCH_Theme_Orange" |
|
) |
|
|
|
|
|
if __name__ == "__main__": |
|
interface.launch( |
|
server_name="0.0.0.0", |
|
server_port=7860, |
|
share=True |
|
) |