File size: 4,065 Bytes
e69350d
 
 
4e2a346
e69350d
4e2a346
 
 
e69350d
924cf8c
 
 
 
 
 
 
 
e076670
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252924f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9ef62b2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252924f
924cf8c
ce840f2
 
 
 
 
 
 
 
 
 
 
 
924cf8c
252924f
9ef62b2
 
924cf8c
 
 
 
dd91754
e69350d
dd91754
 
 
 
 
e69350d
 
924cf8c
 
 
 
 
e69350d
 
924cf8c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
from annotated_text import annotated_text
import streamlit as st
import openai
import os


# OpenAI API ์„ค์ • (ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์„œ ์ฝ์–ด์˜ด)
openai.api_key = os.getenv("OPENAI_API_KEY")  # ์‹ค์ œ ์ฝ”๋“œ์—์„œ ์ฃผ์„ ํ•ด์ œ

def main():
    st.title("Keyword Highlighter")
    
    user_text = st.text_area("Please enter your text here:", "")
    
    if st.button("Find Keywords"):
        
        # few-shot learning์„ ์ด์šฉํ•œ task_description
        # task_description = """You are a helpful assistant that generates annotated text for the st-annotated-text library in Python. Highlight the key terms that are most important in the context of the sentence. Your output should be formatted in the following way:
        # annotated_text(
        #     "This ",
        #     ("is", ""),
        #     " some ",
        #     ("annotated", ""),
        #     ("text", ""),
        #     " for those of ",
        #     ("you", ""),
        #     " who ",
        #     ("like", ""),
        #     " this sort of ",
        #     ("thing", ""),
        #     ". "
        # )"""

        # task_description = """You are a helpful assistant that generates annotated text for the st-annotated-text library in Python. Highlight the key terms that are most important in the context of the sentence, especially focusing on the main subject involved. Your output should be formatted in the following way for text:
        # annotated_text(
        #     "This ",
        #     ("is", ""),
        #     " some ",
        #     ("annotated", ""),
        #     ("text", ""),
        #     " for those of ",
        #     ("you", ""),
        #     " who ",
        #     ("like", ""),
        #     " this sort of ",
        #     ("thing", ""),
        #     ". "
        # )"""

        # task_description = """You are a helpful assistant that generates annotated text for the st-annotated-text library in Python. Your task is to highlight the key terms that are central to the overall topic or theme of the sentence. Your output should be formatted in the following way:
        # annotated_text(
        #     "This ",
        #     ("is", ""),
        #     " some ",
        #     ("annotated", ""),
        #     ("text", ""),
        #     " for those of ",
        #     ("you", ""),
        #     " who ",
        #     ("like", ""),
        #     " this sort of ",
        #     ("thing", ""),
        #     ". "
        # )"""

        # user_prompt = f"Now, please annotate this text: {user_text}"

        task_description = """You are a helpful assistant that generates annotated text for the st-annotated-text library in Python. Your task is to highlight the key terms that are central to the overall topic or theme of the sentence. Your output should be formatted in the following way:
        annotated_text(
            "This ",
            ("is", ""),
            " some ",
            ("annotated", ""),
            ("text", ""),
            " for those of ",
            ("you", ""),
            " who ",
            ("like", ""),
            " this sort of ",
            ("thing", ""),
            ". "
        )"""

        user_prompt = f"Based on the task description, please annotate the following text by highlighting the key terms central to its topic or theme: {user_text}"

        
        messages = [{"role": "system", "content": task_description}, {"role": "user", "content": user_prompt}]
        
        response = openai.ChatCompletion.create(
            model="gpt-3-5-turbo-16k",
            messages=messages,
            temperature=0,
            max_tokens=2500,
            top_p=1,
            frequency_penalty=0,
            presence_penalty=0
        )
        
        highlighted_text = response['choices'][0]['message']['content']
        
        # ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ exec ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด GPT-3.5-turbo๊ฐ€ ์ƒ์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
        # ์‹ค์ œ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ๋Š” ๋ณด์•ˆ ์ด์Šˆ๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
        exec(highlighted_text)

if __name__ == "__main__":
    main()