Spaces:
Sleeping
Sleeping
import gradio as gr | |
import requests | |
import os | |
import re | |
API_KEY = os.getenv("BNILADRIDAS_API_KEY") or os.getenv("HF_BNILADRIDAS_API_KEY") | |
API_URL = "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-thinking-exp-01-21:generateContent" | |
def clean_response(text): | |
lines = [] | |
for line in text.splitlines(): | |
# Remove bullets like *, #, •, - from the beginning (not numbered lists) | |
line = re.sub(r"^\s*[*#•\-]+\s*", "", line) | |
# Remove markdown bold formatting | |
line = re.sub(r"\*\*(.*?)\*\*", r"\1", line) | |
line = re.sub(r"__(.*?)__", r"\1", line) | |
lines.append(line) | |
return "\n".join(lines) | |
def chat(prompt, _): | |
response = requests.post( | |
API_URL, | |
headers={"Content-Type": "application/json"}, | |
params={"key": API_KEY}, | |
json={"contents": [{"parts": [{"text": prompt}]}]} | |
) | |
if response.status_code == 200: | |
try: | |
text = response.json()['candidates'][0]['content']['parts'][0]['text'] | |
return clean_response(text) | |
except: | |
return "No response." | |
return f"Error: {response.status_code}" | |
gr.Interface( | |
fn=chat, | |
inputs=[gr.Textbox(label="Ask something"), gr.Radio(["English"], visible=False)], | |
outputs=gr.Textbox(label="Response") | |
).launch() | |