Spaces:
Running
Running
# -*- coding: utf-8 -*- | |
import gradio as gr | |
from huggingface_hub import InferenceClient | |
import os | |
import requests | |
# ์ถ๋ก API ํด๋ผ์ด์ธํธ ์ค์ | |
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)}" | |
# Gradio ์ธํฐํ์ด์ค ์ค์ | |
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", # ๋ชจ๋ IP์์ ์ ๊ทผ ๊ฐ๋ฅ | |
server_port=7860, # ํฌํธ ์ง์ | |
share=True # ๊ณต์ ๋งํฌ ์์ฑ | |
) |