LangChain(二)

68 阅读2分钟

我正在参加「豆包MarsCode AI练中学体验活动」详情请看:掘金小册上线 AI练中学功能 | 你的 AI 编程助教喊你免费领小册啦!

“易速鲜花”内部员工知识库问答系统

生成回答并展示

这部分是该系统的主要 UI 交互部分,此处需要创建一个 Flask 应用,用来接受问题并生成回答。

# 5. Output 问答系统的UI实现
from flask import Flask, request, render_template
app = Flask(__name__) # Flask APP

@app.route('/', methods=['GET', 'POST'])
def home():
    if request.method == 'POST':

        # 接收用户输入作为问题
        question = request.form.get('question')        
        
        # RetrievalQA链 - 读入问题,生成答案
        result = qa_chain({"query": question})
        
        # 把大模型的回答结果返回网页进行渲染
        return render_template('index.html', result=result)
    
    return render_template('index.html')

if __name__ == "__main__":
    app.run(host='0.0.0.0',debug=True,port=5000)

Flask

基本概念:

  • 路由:路由是 URL 到 Python 函数的映射。Flask 允许你定义路由,这样当特定的 URL 被访问时,就会调用相应的函数。
  • 视图函数:视图函数是处理请求并返回响应的 Python 函数。它们通常接收请求对象作为参数,并返回响应对象。
  • 请求对象:请求对象包含了客户端发送的请求信息,如请求方法、URL、请求头、表单数据等。
  • 响应对象:响应对象包含了发送给客户端的响应信息,如状态码、响应头、响应体等。
  • 模板:Flask 使用 Jinja2 模板引擎来渲染 HTML 模板。
  • 应用工厂:应用工厂是一个 Python 函数,它创建并返回一个 Flask 应用实例。
  • 配置对象:Flask 应用有一个配置对象,你可以使用它来设置各种配置选项,如数据库连接字符串、调试模式等。
  • 蓝图:蓝图是 Flask 中的一个组织代码的方式,它允许你将相关的视图函数、模板和静态文件组织在一起,并且可以在多个应用中重用。
  • 静态文件:静态文件是不会被服务器端执行的文件,如 CSS、JavaScript 和图片文件。Flask 提供了一个简单的方法来服务这些文件。
  • 扩展:Flask 有许多扩展,可以添加额外的功能,如数据库集成、表单验证、用户认证等。
  • 会话:Flask 使用客户端会话来存储用户信息,这允许你在用户浏览你的应用时记住他们的状态。
  • 错误处理