import base64 import os from google import genai from google.genai import types import gradio as gr from IPython.display import display from IPython.display import Markdown client = genai.Client( api_key=os.environ.get("GEMINI_API_KEY"), ) def generate(prompt, *args): model = "gemini-2.0-flash" contents = [ types.Content( role="user", parts=[ types.Part.from_text(text=f"{prompt}"), ], ), ] tools = [ types.Tool(google_search=types.GoogleSearch()) ] generate_content_config = types.GenerateContentConfig( temperature=0.35, top_p=0.95, top_k=40, max_output_tokens=8192, tools=tools, response_mime_type="text/plain", ) response = "" for chunk in client.models.generate_content_stream( model=model, contents=contents, config=generate_content_config, ): response += chunk.text display(Markdown(response)) return response if __name__ == "__main__": iface = gr.ChatInterface( fn=generate, title=gr.Markdown("# Chatbot with Google Search"), description="A chatbot powered by Gemini 2.0 Flash and Google Search.", ) iface.launch()