wxbot 对接谷歌gemini gemini-pro和 GeminiProVision 和Bard模型对比,支持长对话
2023-12-27 18:51:51
?对接效果
?
上对代码?,3个地方的体验还是有区别的。
import requests
import json
import os
os.environ["http_proxy"] = "http://127.0.0.1:1080"
os.environ["https_proxy"] = "http://127.0.0.1:1080"
def save_conversation(wxroomid, history):
""" 保存对话历史到 JSON 文件 """
with open(f"{wxroomid}.json", "w") as file:
json.dump(history, file)
def load_conversation(wxroomid):
""" 从 JSON 文件加载对话历史 """
if os.path.exists(f"{wxroomid}.json"):
with open(f"{wxroomid}.json", "r") as file:
return json.load(file)
return []
def extract_response(response_data):
""" 从 Gemini API 的响应中提取机器人的回复 """
if 'candidates' in response_data and response_data['candidates']:
contents = response_data['candidates'][0].get('content', {}).get('parts', [])
return " ".join(part.get('text', '') for part in contents)
return ""
def send_to_gemini(wxroomid, user_input):
""" 发送请求到 Gemini API 并处理响应 """
url = "https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=AI**********"
# 加载历史对话
history = load_conversation(wxroomid)
# 添加用户输入到历史记录
history.append({"role": "user", "parts": [{"text": user_input}]})
# 准备请求数据
payload = json.dumps({"contents": history})
headers = {'Content-Type': 'application/json'}
# 发送请求并获取响应
response = requests.post(url, headers=headers, data=payload)
response_data = response.json()
# 提取回复并更新历史记录
gemini_response = extract_response(response_data)
if gemini_response:
# 添加模型回答到历史记录
history.append({"role": "model", "parts": [{"text": gemini_response}]})
save_conversation(wxroomid, history)
return gemini_response
# 使用示例
wxroomid = "pengsanyuan"
user_input = "董宇辉的小作文"
response = send_to_gemini(wxroomid, user_input)
print(response)
申请api key?https://makersuite.google.com/app/prompts/new_freeform
文章来源:https://blog.csdn.net/jxyk2007/article/details/135251143
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!