Spaces:
Sleeping
Sleeping
Upload 2 files
Browse files- app.py +63 -0
- requirements.txt +3 -0
app.py
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
import time
|
3 |
+
import openai
|
4 |
+
import os
|
5 |
+
from dotenv import load_dotenv
|
6 |
+
from openai import OpenAI
|
7 |
+
client = OpenAI()
|
8 |
+
|
9 |
+
# Ortam değişkenlerini yükle
|
10 |
+
load_dotenv()
|
11 |
+
openai.api_key = os.getenv("OPENAI_API_KEY")
|
12 |
+
|
13 |
+
# Duygu analizi fonksiyonu
|
14 |
+
def sentiment_analysis(text):
|
15 |
+
try:
|
16 |
+
my_assistant = client.beta.assistants.create(
|
17 |
+
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.",
|
18 |
+
name="SenAssist",
|
19 |
+
#model="gpt-4-turbo",
|
20 |
+
model='gpt-3.5-turbo',
|
21 |
+
)
|
22 |
+
my_thread = client.beta.threads.create()
|
23 |
+
my_message = client.beta.threads.messages.create(
|
24 |
+
thread_id=my_thread.id,
|
25 |
+
role="user",
|
26 |
+
content=text)
|
27 |
+
my_run = client.beta.threads.runs.create(
|
28 |
+
thread_id=my_thread.id,
|
29 |
+
assistant_id=my_assistant.id
|
30 |
+
)
|
31 |
+
my_run = client.beta.threads.runs.retrieve(
|
32 |
+
thread_id=my_thread.id,
|
33 |
+
run_id=my_run.id
|
34 |
+
)
|
35 |
+
while my_run.status in ['queued', 'in_progress', 'cancelling']:
|
36 |
+
time.sleep(1) # Wait for 1 second
|
37 |
+
my_run = client.beta.threads.runs.retrieve(
|
38 |
+
thread_id=my_thread.id,
|
39 |
+
run_id=my_run.id
|
40 |
+
)
|
41 |
+
if my_run.status == 'completed':
|
42 |
+
# list messages for my_thread
|
43 |
+
new_messages = client.beta.threads.messages.list(thread_id=my_thread.id)
|
44 |
+
# determine response from new_messages
|
45 |
+
response = new_messages.data[0].content[0].text.value
|
46 |
+
return response
|
47 |
+
#print(f"Assistant response: {response}")
|
48 |
+
else:
|
49 |
+
return my_run.status
|
50 |
+
except Exception as e:
|
51 |
+
return str(e)
|
52 |
+
|
53 |
+
# Gradio arayüzü
|
54 |
+
iface = gr.Interface(
|
55 |
+
fn=sentiment_analysis,
|
56 |
+
inputs=gr.Textbox(lines=2, placeholder="Metni buraya giriniz..."),
|
57 |
+
outputs="text",
|
58 |
+
title="Duygu Analizi",
|
59 |
+
description="Girilen metnin duygu durumunu değerlendiren bir araç."
|
60 |
+
)
|
61 |
+
|
62 |
+
if __name__ == "__main__":
|
63 |
+
iface.launch()
|
requirements.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
gradio
|
2 |
+
openai
|
3 |
+
python-dotenv
|