目录:
- 1、安装向量数据库
- 2、代码示例
- 2.1、向量数据库检索文档
- 2.2、检索器
- 2.3、检索器与模型结合
1、安装向量数据库
pip install langchain-chroma
2、代码示例
2.1、向量数据库检索文档
#!/usr/bin/env pythonfrom langchain_openai import ChatOpenAI
from langchain_core.messages import SystemMessage
from langchain_core.messages import HumanMessage
import osos.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = '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' #langsmith监控key
os.environ["OPENAI_API_KEY"] = 'aHP78iUOsuamufjyc2lkt0KD0iOFRKfly8fQ74QcdWrPbyrm' #openai的keymodel = ChatOpenAI(model="gpt-4-turbo")#构建测试文档数据(真实是从数据库中来)
documents = [Document(page_content="狗是伟大的伴侣,以其忠诚和友好而闻名。",metadata={"source":"哺乳动物宠物文档"}),Document(page_content="猫是伟大的伴侣,通常喜欢自己的空间。",metadata={"source":"哺乳动物宠物文档"})
]#实例化一个向量数据库
vector_store = Chroma.from_documents(documents , embedding = OpenAIEmbeddings())
#相似度查询,分数越低相似度越高
print(vector_store.similarity_search_with_score('加菲猫'))
测试结果:
2.2、检索器
多个相似度的查询。
2.3、检索器与模型结合
这里我们使用模型链,里面有retriever上下文,这样就会根据文档的上下文做回答,如果没有的话,大模型会根据网上搜索进行一个笼统的回答。