duygu_analizi / app.py
yunuseduran's picture
Upload 2 files
5bc4da7 verified
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()