bniladridas's picture
init
3ee4044 verified
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()