大模型外挂知识库,是行业领域的常用操作,有必要学习一下~

首先在zilliz(cloud.zilliz.com.cn)上注册,启动实例然后创建一个集群,zilliz就会给出一个集群地址,设置好自己的用户名和密码,就可以用了。

然后在python中使用就可以啦:

# Install or upgrade the required packages
! python3 -m pip install --upgrade pymilvus langchain openai tiktoken

from os import environ

# Set up environment variables
ZILLIZ_ENDPOINT = "https://in01-4c18d4ae9d2398b.ali-cn-hangzhou.vectordb.zilliz.com.cn:19530"
ZILLIZ_USER = "db_admin"
ZILLIZ_PASS = "xxx"  # Replace with actual password
OPENAI_API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"  # Replace with actual open API key

environ["OPENAI_API_KEY"] = OPENAI_API_KEY

from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Zilliz
from langchain.document_loaders import WebBaseLoader
from langchain.text_splitter import CharacterTextSplitter

# 使用WebBaseLoader加载指定页面,根据需求输入网址
loader = WebBaseLoader([
    "https://milvus.io/docs/overview.md",
])
docs = loader.load()

# 使用文本分割器将文档分割成指定大小的块
text_splitter = CharacterTextSplitter(chunk_size=2048, chunk_overlap=0)
docs = text_splitter.split_documents(docs)

print(len(docs))  # Print the number of documents
print(docs[0])    # Print the first document

# 指定用来将文档转换成对应向量表示的 Embedding 模型
embeddings = OpenAIEmbeddings(model="text-embedding-ada-002")

# 创建一个向量数据库来保存文档的向量表示,这里我们使用 zilliz Cloud 来创建该数据库,它有直接的接口,直接将文档转成向量并传入向量数据库,可以在zilliz中看到的。
vector_store = Zilliz.from_documents(
    docs,
    embedding=embeddings,
    connection_args={"uri": ZILLIZ_ENDPOINT, "user": ZILLIZ_USER, "password": ZILLIZ_PASS, "secure": True}
)


#用LangChain来搭建智能问答系统
from langchain.chains.qa_with_sources import load_qa_with_sources_chain
from langchain.llms import import OpenAI

chain = load_qa_with_sources_chain(OpenAI(temperature=0), chain_type="map_reduce", return_intermediate_steps=True) #详情请见LangChain的文档

#问答实例
query = "What is milvus?"
docs = vector_store.similarity_search(query)
res = chain({"input_documents": docs, "question": query}, return_only_outputs=True)
print("Question: " + query + "\n")
print("Answer: " + res['output_text'])
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐