File size: 1,615 Bytes
e322e7a
91196b1
 
cce3727
 
 
e322e7a
cce3727
e322e7a
 
cce3727
 
 
e322e7a
 
 
 
 
 
 
 
cce3727
e322e7a
cce3727
e322e7a
 
 
 
cce3727
 
 
 
91196b1
e322e7a
cce3727
 
91196b1
 
 
cce3727
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
import openai
import gradio as gr

def translate_text(api_key, text, target_language, context):
    if not api_key:
        return "⚠️ Please enter your OpenAI API key."
    if not text or not target_language:
        return "⚠️ Please enter text and choose language."

    try:
        client = openai.OpenAI(api_key=api_key)
        prompt = f"Given the context: {context}\nTranslate to {target_language}:\n{text}" if context else f"Translate to {target_language}:\n{text}"

        response = client.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role": "system", "content": "You are a helpful translator."},
                {"role": "user", "content": prompt}
            ]
        )
        return response.choices[0].message.content.strip()

    except Exception as e:
        return f"❌ Error: {str(e)}"

iface = gr.Interface(
    fn=translate_text,
    inputs=[
        gr.Textbox(label="🔑 OpenAI API Key", type="password", placeholder="sk-..."),
        gr.Textbox(label="📝 Text to translate"),
        gr.Dropdown(["Persian", "English"], label="🌐 Target Language"),
        gr.Textbox(label="📚 Context (optional)", placeholder="مثلاً زمینه ترجمه: متنی رسمی، چت دوستانه و غیره")
    ],
    outputs="text",
    title="🤖 AI Translation Agent",
    description="🌍 ترجمه با استفاده از GPT-3.5 با پشتیبانی از زمینه دلخواه \n\nبرای استفاده، کلید OpenAI API خود را وارد کنید."
)

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