blog-test / app.py
Kims12's picture
Update app.py
5d429a8 verified
raw
history blame
2.18 kB
import gradio as gr
from huggingface_hub import InferenceClient
import os
# Cohere Command R+ 모델 ID 정의
COHERE_MODEL = "CohereForAI/c4ai-command-r-plus-08-2024"
# Hugging Face API 토큰을 환경 변수에서 가져옴
def get_client():
hf_token = os.getenv("HF_TOKEN")
if not hf_token:
raise ValueError("HuggingFace API 토큰이 필요합니다.")
return InferenceClient(COHERE_MODEL, token=hf_token)
def generate_blog(tone: str, ref1: str, ref2: str, ref3: str):
"""
Cohere Command R+ 모델을 사용하여 블로그 글을 생성하는 함수
"""
system_message = f"""반드시 한글로 답변할 것.
너는 최고의 비서이며 요청에 따라 주어진 말투를 사용하여 블로그를 작성한다.
말투: {tone}.
"""
question = f"참조글 1: {ref1}\n참조글 2: {ref2}\n참조글 3: {ref3}\n블로그 글을 생성하라."
try:
client = get_client()
response = client.chat_completion(
messages=[
{"role": "system", "content": system_message},
{"role": "user", "content": question}
],
max_tokens=4000,
temperature=0.7,
top_p=0.95
)
return response.choices[0].message.content
except Exception as e:
return f"오류가 발생했습니다: {str(e)}"
# Gradio 인터페이스 구축
with gr.Blocks() as demo:
gr.Markdown("# 블로그 생성기")
with gr.Row():
tone = gr.Radio(
label="말투 바꾸기",
choices=["친근하게", "일반적인", "전문적인"],
value="일반적인"
)
ref1 = gr.Textbox(label="참조글 1", lines=3)
ref2 = gr.Textbox(label="참조글 2", lines=3)
ref3 = gr.Textbox(label="참조글 3", lines=3)
output = gr.Textbox(label="생성된 블로그 글", lines=10, interactive=False)
generate_button = gr.Button("생성하기")
generate_button.click(
fn=generate_blog,
inputs=[tone, ref1, ref2, ref3],
outputs=output
)
if __name__ == "__main__":
demo.launch()
# requirements.txt
gradio
huggingface-hub==4.44.1