(一)AI本地知识库问答(可运行):LangChain+Chroma向量数据库+OpenAi大模型

这篇具有很好参考价值的文章主要介绍了(一)AI本地知识库问答(可运行):LangChain+Chroma向量数据库+OpenAi大模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

调研阶段,有什么不好的地方欢迎大家帮我指认,谢谢!

一、项目结构总览(AiDemo,先上代码,后续再解释)

langchain+azure openai+chroma,langchain,python,人工智能,chrome

只需要看config目录下的config.py,data目录下的txt知识库文件,db向量数据库文件在持久化部署后会自动生成,route下的app.py,scripts目录下的Chroma向量库持久化部署.py这几个就可以,scripts目录下的考勤问答.py和test目录下都是单独的自己测试的小代码,可以不用关注

二、安装C++编译环境

因为运行需要本地有C++的环境,所以需要安装C++生成工具,

langchain+azure openai+chroma,langchain,python,人工智能,chrome

勾选这一个就可以

地址:Microsoft C++ 生成工具 - Visual Studio

三、代码

config.py

# openai的key
openai_api_key = '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'

# 代理地址配置
http_proxy = "http://127.0.0.1:7890"

# 向量数据库path
kaoqin_vector_db_path = "D:\PythonProjects\pythonTestProject\AiDemo\data\考勤.db"
touzi_vector_db_path = "D:\PythonProjects\pythonTestProject\AiDemo\data\投资.db"
yunying_vector_db_path = "D:\PythonProjects\pythonTestProject\AiDemo\data\产品运营问题反馈.db"

# 问答库path
kaoqin_qa_txt_path = "D:\PythonProjects\pythonTestProject\AiDemo\data\考勤.txt"
touzi_qa_txt_path = "D:\PythonProjects\pythonTestProject\AiDemo\data\投资.txt"
yunying_qa_txt_path = "D:\PythonProjects\pythonTestProject\AiDemo\data\产品运营问题反馈.txt"

data下的知识库,大家自己用自己的就可以了,知识库不要太长 ,太长的话需要对数据进行mapreduce操作,会比较麻烦,入门级不用考虑这么多,先跑起来再说,这里只展示考勤的txt知识库文件,至于db向量数据库文件,是运行chroma持久化部署之后会生成的

langchain+azure openai+chroma,langchain,python,人工智能,chrome

app.py

import json

from flask import Flask, request
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma
from langchain import OpenAI
from langchain.chains import RetrievalQA
import os

from AiDemo.config import config
from AiDemo.config.config import kaoqin_vector_db_path

os.environ["OPENAI_API_KEY"] = config.openai_api_key
os.environ["http_proxy"] = config.http_proxy
os.environ["https_proxy"] = config.http_proxy
app = Flask(__name__)

docsearch = Chroma(
    persist_directory=kaoqin_vector_db_path,
    embedding_function=OpenAIEmbeddings()
)

qa = RetrievalQA.from_chain_type(
    llm=OpenAI(model_name="text-davinci-003"),
    chain_type="stuff",
    retriever=docsearch.as_retriever(),
    return_source_documents=False,
)


@app.route('/get_single_answer', methods=['GET'])
def get_single_answer():
    query = request.args.get('query')
    if query:
        if query.endswith("?") or query.endswith("?"):
            query = query
        else:
            query = query + "?"
        result = qa(
            {"query": "请根据你所知道的来回答下面这个问题:" + query + "如果你不知道,请不要乱说,可以让我去咨询相关的客服人员。"})
        result = result.__str__().replace("'", '"')
        final_result = json.loads(result)
        final_result = final_result['result']
        return '{"result": "' + final_result + '"}'
    else:
        return "请输入问题."


if __name__ == '__main__':
    app.run(debug=True)

 Chroma向量库持久化部署.py

import os
from langchain.document_loaders import UnstructuredFileLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Chroma
from langchain.embeddings.openai import OpenAIEmbeddings

from AiDemo.config import config
from AiDemo.config.config import kaoqin_vector_db_path, kaoqin_qa_txt_path

os.environ["OPENAI_API_KEY"] = config.openai_api_key
os.environ["http_proxy"] = config.http_proxy
os.environ["https_proxy"] = config.http_proxy

loader = UnstructuredFileLoader(kaoqin_qa_txt_path)

documents = loader.load()

source_chunks = []

text_splitter = CharacterTextSplitter(
    separator=" ",
    chunk_size=100,
    chunk_overlap=20
)

split_docs = text_splitter.split_documents(documents)

docsearch = Chroma.from_documents(
    documents,
    OpenAIEmbeddings(),
    persist_directory=kaoqin_vector_db_path
)
docsearch.persist()
print("Chroma向量库持久化部署完成!")

 四、运行

1、需要导入包

pip install langchain
pip install openai
pip install chromadb
pip install ydata-profiling
pip install requests
pip install unstructured

暂时能想起来的就只有这些了,如果提示没有什么什么包,就知道pip就行

2、配置文件里的路径,改成自己本地的路径,openai的key,改成自己的key,我的key已经更新了其他的了,怎么注册申请openai的key,可以自行网上搜索

代理地址配置,也需要配置自己的VPN地址,运行项目,本地是要开启VPN的,这里推荐一个本人使用了快三年的稳定VPN源地址:注册 — 惊叹号cloud

 需要先运行Chroma向量库持久化部署.py文件来将知识库加载到向量数据库中,之后再运行app.py中的main

langchain+azure openai+chroma,langchain,python,人工智能,chrome

langchain+azure openai+chroma,langchain,python,人工智能,chrome

最后就是用postman访问了 

langchain+azure openai+chroma,langchain,python,人工智能,chrome

 langchain+azure openai+chroma,langchain,python,人工智能,chrome

五、总结

        本文只是以能运行的demo为目的,中间各种知识的铺垫,如有不懂的话,可以去网上搜查各种资料,后续我可能也会继续发布相关的知识学习,有什么问题欢迎大家指正 。文章来源地址https://www.toymoban.com/news/detail-778663.html

到了这里,关于(一)AI本地知识库问答(可运行):LangChain+Chroma向量数据库+OpenAi大模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从LangChain+LLM的本地知识库问答到LLM与知识图谱、数据库的结合

    过去半年,随着ChatGPT的火爆,直接带火了整个LLM这个方向,然LLM毕竟更多是基于过去的经验数据预训练而来,没法获取最新的知识,以及各企业私有的知识 为了获取最新的知识,ChatGPT plus版集成了bing搜索的功能,有的模型则会调用一个定位于 “链接各种AI模型、工具”的

    2024年02月12日
    浏览(69)
  • 给LLM装上知识:从LangChain+LLM的本地知识库问答到LLM与知识图谱的结合

    过去半年,随着ChatGPT的火爆,直接带火了整个LLM这个方向,然LLM毕竟更多是基于过去的经验数据预训练而来,没法获取最新的知识,以及各企业私有的知识 为了获取最新的知识,ChatGPT plus版集成了bing搜索的功能,有的模型则会调用一个定位于 “链接各种AI模型、工具”的

    2024年02月12日
    浏览(68)
  • LLM本地知识库问答系统(一):使用LangChain和LlamaIndex从零构建PDF聊天机器人指南

           随着大型语言模型(LLM)(如ChatGPT和GPT-4)的兴起,现在比以往任何时候都更容易构建比普通熊更智能的智能聊天机器人,并且可以浏览堆积如山的文档,为您的输入提供准确的响应。        在本系列中,我们将探索如何使用pre-trained的LLM创建一个聊天机器人,该聊

    2024年02月11日
    浏览(65)
  • ai聊天问答知识库机器人源码,基于gpt实现的本地知识库问答实现,聊天对话效果,发送回复以及流式输出...

    现在基于gpt做自己项目的问答机器人,效果非常的好。可以把自己的文档上传上去,让机器人根据文档来进行回答。 想要实现智能AI问答功能,现在大部分都是基于向量数据库的形式。 整体的流程就是:上传文档===openai向量接口 ==== 存入向量数据库 访客咨询:  咨询问题

    2024年02月10日
    浏览(49)
  • 【AI】Langchain-Chatchat搭建本地知识库-未完,先记录踩的坑

    事先说一下,我本地的显卡4070只有12G显存,无法运行本地知识库,我把自己折腾的过程和遇到的坑先记录一下吧,后续如果有算力的话就再跑一遍试试。后续来了:【AI】使用阿里云免费服务器搭建Langchain-Chatchat本地知识库 Langchain-Chatchat曾用名Langchain-ChatGLM,是智谱AI的本地

    2024年02月04日
    浏览(52)
  • 【AI】使用阿里云免费服务器搭建Langchain-Chatchat本地知识库

    书接上文,由于家境贫寒的原因,导致我本地的GPU资源无法满足搭建Langchain-Chatchat本地知识库的需求,具体可以看一下这篇文章,于是我只能另辟蹊径,考虑一下能不能白嫖一下云服务器资源,于是去找网上找,您还别说,还真有,具体的领取方法可以查看我的这篇文章:【

    2024年02月03日
    浏览(76)
  • AI-基于Langchain-Chatchat和chatglm3-6b部署私有本地知识库

    手把手教你搭建本地知识库问答AI机器人 LangChain-Chatchat:基于LangChain和ChatGLM2-6B构建本地离线私有化知识库 在家庭私有云上部署体验语言模型chatglm3-6b,打造私人助理 手把手教大家在本地运行ChatGLM3-6B大模型(一) 自从去年GPT模型火爆以来,降低了很多个人和企业进入人工智

    2024年02月20日
    浏览(65)
  • 【Langchain】+ 【baichuan】实现领域知识库【RAG】问答系统

    本项目使用 Langchain 和 baichuan 大模型, 结合领域百科词条数据(用xlsx保存),简单地实现了领域百科问答实现。

    2024年02月21日
    浏览(50)
  • 使用langchain+chatGPT搭建自有知识库问答机器人

            自去年年底OpenAI发布ChatGPT以来,大型语言模型在人工智能领域掀起了一股热潮。随后,各家公司纷纷推出自己的大型语言模型,如百度的文心一言、讯飞的星火大模型等。在这个过程中,文本转图片和文本转视频等相关领域也备受关注。然而,很显然,这只是一时的

    2024年02月13日
    浏览(50)
  • 基于Llama2和LangChain构建本地化定制化知识库AI聊天机器人

    参考: 本项目 https://github.com/PromtEngineer/localGPT 模型 https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML 云端知识库项目:基于GPT-4和LangChain构建云端定制化PDF知识库AI聊天机器人_Entropy-Go的博客-CSDN博客          相比OpenAI的LLM ChatGPT模型必须网络连接并通过API key云端调用模型,担心

    2024年02月08日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包