使用 Python 开发 Bard 对话机器人:从 API 接入到 UI 界面搭建实战
·
接入 Bard API
Bard API 目前未正式开放,需通过逆向工程或非官方库访问。可使用 google-generativeai 库模拟交互。安装库:
pip install google-generativeai
初始化客户端并发送请求:
import google.generativeai as genai
genai.configure(api_key="YOUR_API_KEY")
model = genai.GenerativeModel('gemini-pro')
response = model.generate_content("Hello, Bard!")
print(response.text)
注意:需替换有效 API Key,非官方接口可能存在稳定性风险。
设计对话逻辑
实现多轮对话需维护上下文。使用列表存储历史消息:
history = []
while True:
user_input = input("You: ")
history.append({"role": "user", "content": user_input})
response = model.generate_content(history)
print("Bard:", response.text)
history.append({"role": "model", "content": response.text})
上下文长度有限制,需定期清理旧消息避免超过令牌限制。
构建简单 UI 界面
使用 gradio 快速搭建 Web 界面:
pip install gradio
创建交互式应用:
import gradio as gr
def chat(message, history):
history.append({"role": "user", "content": message})
response = model.generate_content(history)
return response.text
demo = gr.ChatInterface(
fn=chat,
examples=["Explain quantum computing", "Write a Python function"],
title="Bard Chatbot"
)
demo.launch()
运行后会在本地启动 Web 服务,默认地址 http://127.0.0.1:7860。
部署生产环境
使用 FastAPI 构建 REST API 接口:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Query(BaseModel):
text: str
@app.post("/chat")
async def chat(query: Query):
response = model.generate_content(query.text)
return {"response": response.text}
用 Uvicorn 运行服务:
pip install fastapi uvicorn
uvicorn main:app --reload
前端可通过 HTTP POST 请求 /chat 端点获取响应。
性能优化技巧
启用流式响应减少等待时间:
response = model.generate_content(
"Write a long article",
stream=True
)
for chunk in response:
print(chunk.text)
缓存常用回答降低 API 调用次数,使用 functools.lru_cache 装饰器实现简单缓存。
更多推荐



所有评论(0)