Spaces:
Sleeping
Sleeping
| from openai import AsyncOpenAI | |
| import gradio as gr | |
| import os | |
| client = AsyncOpenAI(api_key=os.environ['OPENAI_API_KEY']) | |
| async def generate_card_news(input_text, tone, length): | |
| prompt = f""" | |
| 팀장들의 리더십 개발을 위해 노력하는 유능한 작가야. 섬세하면서도 적확한 한국어 어휘를 선택할 수 있어. 흐름을 잃지 않고 단문의 매력을 살려줘. 원문이 영어든 한국어든 모두 유려하게 한국어 표현으로 구사해. 사자성어나 명언을 잘 알고, 적재적소에 활용해. 네가 해야 할 일은 주어진 텍스트 "{input_text}"에 기반하여 요약된 글을 작성해주는거야. 팀장들은 바쁘기 때문에 명확하면서도 자세한 방식으로 작성하는 것이 중요해. 요약된 글의 톤은 "{tone}"이며, 요약된 글의 길이는 {length}야. 요약된 글에는 다음이 포함되어야 해: | |
| 1. 첫도입부는 두괄식으로 핵심주제가 언급되게 해줘. | |
| 2. 본문의 인용 부분과 흥미로운 문구는 직접 인용하고, 인용문은 영어여도 괜찮아. 사자성어나 명언도 활용해주고, 과정이나 절차를 소개한 것은 원래 표현을 살려줘. | |
| 3. '-습니다'체를 유지해줘. | |
| 4. 마지막 한 문장은 본문으로부터 한줄 띄워서 작성해주고, 내용은 이 요약글에서 리더십 측면에서 얻어갈 거리, 질문, 의미 등을 정리해주면 좋겠어. | |
| 요약된 글을 보는 사람들은 항상 바쁜 팀장들이므로, 내용은 시선을 끌고 흥미롭고 정보가 충실해야해. 결과물은 반드시 한국어로 제공해줘 | |
| """ | |
| try: | |
| response = await client.chat.completions.create( | |
| model="gpt-4-1106-preview", | |
| messages=[{"role": "system", "content": prompt}] | |
| ) | |
| except Exception as e: | |
| print(f"Error: {e}") | |
| return "Error generating card news" | |
| # Correctly access the 'content' attribute from the 'ChatCompletionMessage' object | |
| if response.choices: | |
| card_news_plan = response.choices[0].message.content.strip() # Use dot notation to access 'content' | |
| else: | |
| card_news_plan = "No card news plan generated." | |
| return card_news_plan | |
| iface = gr.Interface( | |
| fn=generate_card_news, | |
| inputs=[ | |
| gr.Textbox(label="여기에 원문을 붙여넣어주세요(작가님 글, HBR/Forbes 같은 원문도 가능!)", lines=5), | |
| gr.Radio(["공감가는", "전문적인", "재미있는"], label="원하는 요약의 톤"), | |
| gr.Radio(["5문장", "10문장", "20문장", "50문장"], label="요약문의 길이") | |
| ], | |
| outputs=gr.Textbox(label="요약된 글", lines=15), | |
| title="요약문 생성기 by Crystal✨", | |
| description="행복컬리지의 행복을 위하여...🙋🏻♀️240301🇰🇷" | |
| ) | |
| iface.launch() | |