LangChain结合milvus向量数据库以及GPT3.5结合做知识库问答之二 --->代码实现

python 复制代码
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.embeddings.cohere import CohereEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Milvus
from langchain.document_loaders import PyPDFLoader, TextLoader
from langchain.chains import RetrievalQAWithSourcesChain
import os
from langchain.llms import OpenAI

OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")

chain = None


def do_work():
    global chain
    loader = PyPDFLoader("./王天龙-算法工程师-研究生.pdf")
    docs = loader.load_and_split()
    embeddings = OpenAIEmbeddings()

    vector_db = Milvus.from_documents(
        docs,
        embeddings,
        connection_args={
            "host": "ljxwtl.cn", "port": "19530"
        }
    )

    chain = RetrievalQAWithSourcesChain.from_chain_type(
        OpenAI(temperature=0, openai_api_key=OPENAI_API_KEY),
        chain_type="map_reduce",
        retriever=vector_db.as_retriever()
    )


def __test_do_work():
    do_work()


def query(question):
    global chain

    response = chain(
        inputs={"question": question},
        return_only_outputs=True
    )
    print(response)


def __test_query():
    query("王天龙的简介")


if __name__ == '__main__':
    __test_do_work()
    __test_query()
bash 复制代码
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.embeddings.cohere import CohereEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Milvus
from langchain.document_loaders import PyPDFLoader, TextLoader
from langchain.chains import RetrievalQAWithSourcesChain
import os
from langchain.llms import OpenAI

OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")

chain = None


def do_work():
    global chain
    loader = PyPDFLoader("./王天龙-算法工程师-研究生.pdf")
    docs = loader.load_and_split()
    embeddings = OpenAIEmbeddings()

    vector_db = Milvus.from_documents(
        docs,
        embeddings,
        connection_args={
            "host": "ljxwtl.cn", "port": "19530"
        }
    )

    chain = RetrievalQAWithSourcesChain.from_chain_type(
        OpenAI(temperature=0, openai_api_key=OPENAI_API_KEY),
        chain_type="map_reduce",
        retriever=vector_db.as_retriever()
    )


def __test_do_work():
    do_work()


def query(question):
    global chain

    response = chain(
        inputs={"question": question},
        return_only_outputs=True
    )
    print(response)


def __test_query():
    query("王天龙的工作经验")


if __name__ == '__main__':
    __test_do_work()
    __test_query()
相关推荐
考虑考虑1 小时前
postgressql更新时间
数据库·后端·postgresql
甄超锋1 小时前
python sqlite3模块
jvm·数据库·python·测试工具·django·sqlite·flask
HMBBLOVEPDX2 小时前
MySQL的锁:
数据库·mysql
数据皮皮侠3 小时前
最新上市公司业绩说明会文本数据(2017.02-2025.08)
大数据·数据库·人工智能·笔记·物联网·小程序·区块链
小云数据库服务专线3 小时前
GaussDB数据库架构师修炼(十六) 如何选择磁盘
数据库·数据库架构·gaussdb
码出财富4 小时前
SQL语法大全指南
数据库·mysql·oracle
前端双越老师5 小时前
【干货】使用 langChian.js 实现掘金“智能总结” 考虑大文档和 token 限制
人工智能·langchain·node.js
异世界贤狼转生码农6 小时前
MongoDB Windows 系统实战手册:从配置到数据处理入门
数据库·mongodb
Dajiaonew6 小时前
Spring AI RAG 检索增强 应用
java·人工智能·spring·ai·langchain
QuZhengRong6 小时前
【数据库】Navicat 导入 Excel 数据乱码问题的解决方法
android·数据库·excel