File size: 2,375 Bytes
5bc4da7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import time
import openai
import os
from dotenv import load_dotenv
from openai import OpenAI
client = OpenAI()

# Ortam değişkenlerini yükle
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")

# Duygu analizi fonksiyonu
def sentiment_analysis(text):
    try:
        my_assistant = client.beta.assistants.create(
        instructions="Sen duygu analizi asistanısın. Sana verilen metinleri kendi dillerinde duygu durumuna göre  analiz et ve değerlendir. Cümleler farklı duygu durumlarını yansıtabilir. Metnin ana duygusunu ağır basan duyguyu ele al. Duygu durumu pozitif ise: 1, Negatif ise: -1 veya Nötr ise: 0 değerlerinden birini döndür. Senin yanıtın 1, 0 veya -1 sayılarından yalnızca birisi olmalıdır. Yanıtta başka bir şey yer almamalıdır.",
        name="SenAssist",
        #model="gpt-4-turbo",
        model='gpt-3.5-turbo',
)
        my_thread = client.beta.threads.create()
        my_message = client.beta.threads.messages.create(
            thread_id=my_thread.id,
            role="user",
            content=text)
        my_run = client.beta.threads.runs.create(
            thread_id=my_thread.id,
            assistant_id=my_assistant.id
)
        my_run = client.beta.threads.runs.retrieve(
              thread_id=my_thread.id,
              run_id=my_run.id
  )
        while my_run.status in ['queued', 'in_progress', 'cancelling']:
            time.sleep(1) # Wait for 1 second
            my_run = client.beta.threads.runs.retrieve(
                thread_id=my_thread.id,
                run_id=my_run.id
  )
        if my_run.status == 'completed':
            # list messages for my_thread
            new_messages = client.beta.threads.messages.list(thread_id=my_thread.id)
            # determine response from new_messages
            response = new_messages.data[0].content[0].text.value
            return response
            #print(f"Assistant response: {response}")
        else:
            return my_run.status     
    except Exception as e:
        return str(e)
    
# Gradio arayüzü
iface = gr.Interface(
    fn=sentiment_analysis,
    inputs=gr.Textbox(lines=2, placeholder="Metni buraya giriniz..."),
    outputs="text",
    title="Duygu Analizi",
    description="Girilen metnin duygu durumunu değerlendiren bir araç."
)

if __name__ == "__main__":
    iface.launch()