在这个对话式人工智能的世界中,创建一个快速响应且功能强大的网络应用是一项复杂但令人满足的任务。本文将指导你构建一个简单的基于 Flask 的聊天机器人,该机器人能够与 Google Vertex AI 的语言模型交互,并利用缓存来提高性能和响应速度。
简介:
我们的聊天机器人程序由Google Vertex AI和Flask以及Flask-Caching集成提供支持。这种配置非常适合诸如辅导或支持系统之类的用例,用户可以提问并获得详细且有帮助的回答。HTML格式确保回复条理清晰、易于阅读,而缓存则通过在内存中存储常用问题来优化性能。
条件
pip install google-cloud-vertexai flask flask-cors flask-caching langchain langchain-google-vertexai
创建 Flask 应用:使用 Vertex AI 平台和启用缓存
第一步:启动 Flask 应用程序
我们将从创建一个基本的Flask应用开始,这将是我们的聊天机器人的基础。
# 导入所需的库
from flask import Flask, request, jsonify
from flask_cors import CORS
from flask_caching import Cache
import os
import vertexai
from langchain.memory import ConversationBufferMemory
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
from langchain_google_vertexai import ChatVertexAI
# 初始化Flask应用
app = Flask(__name__)
# 启用跨域资源共享
CORS(app)
# 配置缓存类型为简单缓存
app.config['CACHE_TYPE'] = 'SimpleCache'
# 设置缓存默认超时时间为300秒
app.config['CACHE_DEFAULT_TIMEOUT'] = 300
# 初始化缓存
cache = Cache(app)
步骤2:配置Google Vertex AI:
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "your_credentials.json"
vertexai.init(project="your_project_id")
步骤3:设置语言模型。
定义了一个名为 llm 的变量,使用 ChatVertexAI 模型 "gemini-1.5-flash-001",并设置了温度参数为 0.2。
第4步:打造一个基于上下文的聊天机器人:
def 创建基于上下文的聊天机器人函数():
会话记忆 = ConversationBufferMemory(memory_key="chat_history")
提示模板 = PromptTemplate.from_template(
"""你是一位专注于数学、科学和历史等科目的辅导老师。
当前对话:
{chat_history}
用户:{input}
AI:"""
)
链 = LLMChain(llm=llm, prompt=提示模板, memory=会话记忆)
return 链
第五步:响应显示的HTML格式
def 创建_html_formatter_chain():
html_prompt = PromptTemplate.from_template(
"""你是一个HTML格式化器。请将以下响应:“{input_response}”,用HTML格式化它...
"""
)
html_chain = LLMChain(llm=llm, prompt=html_prompt)
return html_chain
步骤 6:加入缓存
@app.route('/chat', methods=['POST'])
def chat():
user_input = request.json.get('input')
if not user_input:
return jsonify({"error": "未提供任何输入"}), 400
cached_response = cache.get(user_input)
if cached_response:
return jsonify({"response": cached_response})
initial_response = chatbot.run(input=user_input)
formatted_response = html_formatter_chain.run(输入响应=initial_response)
cache.set(user_input, formatted_response)
return jsonify({"response": formatted_response})
步骤7:启动应用
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
该代码段用于运行应用程序,开启调试模式,并监听所有网络接口的5000端口。
测试应用
{
"input": "光合作为什么重要?"
}
显示
结论
使用 Google Vertex AI、Flask 和缓存,我们创建了一个聊天机器人,可以处理实时对话并将其格式化为 HTML,并优化频繁查询的响应速度。模型的响应不仅内容丰富,还具有良好的视觉呈现,从而改善用户体验。
更多精彩内容即将登场,敬请期待!
共同學習,寫下你的評論
評論加載中...
作者其他優質文章