import ast import openai from text_annotator import generate_annotated_text def gpt_keyw_extractor(user_text): ''' :param user_text: str :return: list of keywords ''' task_description = "You are a Python function that extract 5 keywords from {input_text}. The output should be formatted as [keyword1, keyword2, ...]. Return only the function's output, with no additional explanations." user_prompt = r"{input_text}=" + f"{user_text}" messages = [{"role": "system", "content": task_description}, {"role": "user", "content": user_prompt}] response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=messages, temperature=0, max_tokens=1019, top_p=0, frequency_penalty=0, presence_penalty=0 ) extracted_keywords = response['choices'][0]['message']['content'] ## literal_eval 함수를 사용하여 string을 list로 변환 extracted_keywords = ast.literal_eval(extracted_keywords) ## highlighted_text 후처리 함수 추가 highlighted_text = generate_annotated_text(text=user_text, keyw_list=extracted_keywords) return highlighted_text