基于 InternLM 和 LangChain 搭建你的知识库

发布时间:2024年01月14日

在这里插入图片描述
如何打造垂域大模型是一个重要落地方向。
如何打造个人专属的大模型应用也是重要的问题。

在这里插入图片描述

RAG 外挂一个知识库
优势:成本低,实时更新
劣势:能力受基座模型影响大,RAG每次需要将检索文档和问题提交给大模型,极大占用上下文限制。

Finetune 轻量级的微调
优势:可以充分拟合个性化数据;个性化大模型,依然具有广大的通用能力
劣势:无法解决实时更新成本问题。算力、数据都需要成本。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基于 InternLM 和 LangChain 搭建你的知识库 github 代码

最后示例代码


import gradio as gr
from utils import Model_center

# 实例化核心功能对象
model_center = Model_center()
# 创建一个 Web 界面
block = gr.Blocks()
with block as demo:
    with gr.Row(equal_height=True):   
        with gr.Column(scale=15):
            # 展示的页面标题
            gr.Markdown("""<h1><center>InternLM</center></h1>
                <center>书生浦语</center>
                """)

    with gr.Row():
        with gr.Column(scale=4):
            # 创建一个聊天机器人对象
            chatbot = gr.Chatbot(height=450, show_copy_button=True)
            # 创建一个文本框组件,用于输入 prompt。
            msg = gr.Textbox(label="Prompt/问题")

            with gr.Row():
                # 创建提交按钮。
                db_wo_his_btn = gr.Button("Chat")
            with gr.Row():
                # 创建一个清除按钮,用于清除聊天机器人组件的内容。
                clear = gr.ClearButton(
                    components=[chatbot], value="Clear console")
                
        # 设置按钮的点击事件。当点击时,调用上面定义的 qa_chain_self_answer 函数,并传入用户的消息和聊天历史记录,然后更新文本框和聊天机器人组件。
        db_wo_his_btn.click(model_center.qa_chain_self_answer, inputs=[
                            msg, chatbot], outputs=[msg, chatbot])

    gr.Markdown("""提醒:<br>
    1. 初始化数据库时间可能较长,请耐心等待。
    2. 使用中如果出现异常,将会在文本输入框进行展示,请不要惊慌。 <br>
    """)
gr.close_all()

# 直接启动
demo.launch()

在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_41783424/article/details/135588332
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。