Spaces:
Runtime error
Runtime error
File size: 2,556 Bytes
240a78d d291407 e6bc483 d291407 b727914 d291407 f43a4a2 1b31e5e f43a4a2 1b31e5e f43a4a2 669f0b6 e6bc483 669f0b6 d291407 1b31e5e d291407 1b31e5e d291407 927446b d291407 1b31e5e 669f0b6 d291407 1b31e5e f43a4a2 669f0b6 f43a4a2 d291407 1b31e5e d291407 97f10b6 d291407 |
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
import gradio as gr
from huggingface_hub import InferenceClient
from serpapi import GoogleSearch # Import SerpAPI
SERPAPI_KEY = "your_serpapi_key_here" # Replace with your API key
client = InferenceClient("Futuresony/future_ai_12_10_2024.gguf")
def is_uncertain(question, response):
"""Check if the model's response is unreliable."""
if len(response.split()) < 4: # Too short = likely incorrect
return True
if response.lower() in question.lower(): # Repeats question = unsure
return True
uncertain_phrases = [
"Kulingana na utafiti", "Inaaminika kuwa", "Ninadhani",
"It is believed that", "Some people say", "Inasemekana kuwa"
]
if any(phrase.lower() in response.lower() for phrase in uncertain_phrases):
return True
return False
def google_search(query):
"""Fetch search results using SerpAPI."""
params = {
"q": query,
"hl": "en",
"gl": "us",
"api_key": SERPAPI_KEY
}
search = GoogleSearch(params)
results = search.get_dict()
if "organic_results" in results:
return results["organic_results"][0]["snippet"] # First search result
return "Sorry, I couldn't find an answer on Google."
def respond(message, history, system_message, max_tokens, temperature, top_p):
messages = [{"role": "system", "content": system_message}]
for val in history:
if val[0]: messages.append({"role": "user", "content": val[0]})
if val[1]: messages.append({"role": "assistant", "content": val[1]})
messages.append({"role": "user", "content": message})
response = ""
for message in client.chat_completion(messages, max_tokens=max_tokens, stream=True, temperature=temperature, top_p=top_p):
token = message.choices[0].delta.content
response += token
yield response # Stream the response
# If the model's response is unreliable, fetch from Google
if is_uncertain(message, response):
google_response = google_search(message)
yield f"🤖 AI: {response}\n\n🌍 Google: {google_response}"
demo = gr.ChatInterface(
respond,
additional_inputs=[
gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p"),
],
)
if __name__ == "__main__":
demo.launch()
|