ZeppFusion / app.py
Xyro123's picture
Update app.py
f79c98e verified
raw
history blame
3.07 kB
import os
import requests
import gradio as gr
from openai import OpenAI
# 🔑 API key-г environment variable-аас уншина
openai_api_key = os.getenv("OPENAI_API_KEY")
gemini_api_key = os.getenv("GEMINI_API_KEY")
# Баталгаажуулах
print("OPENAI_API_KEY =", openai_api_key)
print("GEMINI_API_KEY =", gemini_api_key)
# OpenAI client
if openai_api_key is None:
raise ValueError("⚠️ OPENAI_API_KEY тохируулна уу!")
client = OpenAI(api_key=openai_api_key)
# ChatGPT (gpt-5) хариу
def chatgpt_response(prompt):
try:
response = client.responses.create(
model="gpt-5",
input=prompt
)
return response.output_text
except Exception as e:
return f"⚠️ ChatGPT error: {e}"
# Gemini хариу
def gemini_response(prompt):
if gemini_api_key is None:
return "⚠️ GEMINI_API_KEY тохируулаагүй байна!"
try:
url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key={gemini_api_key}"
headers = {"Content-Type": "application/json"}
data = {"contents": [{"parts": [{"text": prompt}]}]}
res = requests.post(url, headers=headers, json=data)
res_json = res.json()
return res_json["candidates"][0]["content"]["parts"][0]["text"]
except Exception as e:
return f"⚠️ Gemini error: {e}"
# Fusion logic (ChatGPT quota дууссан үед Gemini fallback)
def fusion_ai(prompt):
gpt_reply = chatgpt_response(prompt)
gemini_reply = gemini_response(prompt)
if "ChatGPT error" in gpt_reply.lower():
return f"⚠️ ChatGPT quota дууссан тул Gemini хариу:\n\n{gemini_reply}"
return f"""
<div style="background-color:#0d1117; padding:20px; border-radius:10px; color:#e6edf3; font-family:Segoe UI">
<h3>🧩 <span style="color:#00d9ff">Fusion Summary</span></h3>
<p><b>ChatGPT 🧠:</b> {gpt_reply}</p>
<p><b>Gemini 🌐:</b> {gemini_reply}</p>
<hr style="border:1px solid #222;">
<h4>✨ <span style="color:#9b59b6">ZeppFusion Combined Insight:</span></h4>
<p>{gpt_reply if len(gpt_reply) > len(gemini_reply) else gemini_reply}</p>
</div>
"""
# Gradio Interface
css = """
.gradio-container {background-color: #0d1117 !important; color: #e6edf3;}
h1, h3, h4, label {color: #00d9ff !important;}
textarea, input {background-color:#161b22 !important; color:#fff !important; border-radius:10px;}
button {background-color:#00d9ff !important; color:#000 !important; font-weight:bold; border-radius:10px;}
"""
app = gr.Interface(
fn=fusion_ai,
inputs=gr.Textbox(label="🗨️ Та асуултаа бичнэ үү", placeholder="Жишээ нь: AI гэж юу вэ?"),
outputs=gr.HTML(label="💡 ZeppFusion AI-ийн хариулт"),
title="🚀 ZeppFusion AI",
description="ChatGPT (gpt-5) 🧠 + Gemini 🌐 хослуулсан Fusion AI chatbot — Where Intelligence Unites.",
theme="soft",
css=css,
)
if _name_ == "_main_":
app.launch()