我自己虚构了两个产品介绍文件:“极领”和"疯吉"。然后分别读入构建本地知识库的问答机器人。为什么通过"疯吉"的介绍文件生成的问答机器人,能识别到“极领”的相关信息呢?
代码:
loader = TextLoader(‘./疯吉’, encoding=“utf-8”)
documents = loader.load()
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=20, chunk_overlap=5, separators = [‘,’, ‘。’, ‘\n’]
)
texts = text_splitter.split_documents(documents)
embeddings = OpenAIEmbeddings()
docSearch = Chroma.from_documents(texts, embeddings, metadatas=[{“source”: str(i)} for i in range(len(texts))], persist_directory=“D:/vector_store”)
docSearch.persist()
llm = OpenAI(temperature=0)
retriever = docSearch.as_retriever()
retriever.search_kwargs[‘distance_metric’] = ‘cos’
retriever.search_kwargs[‘fetch_k’] = 100
retriever.search_kwargs[‘maximal_marginal_relevance’] = True
retriever.search_kwargs[‘k’] = 10
chain = RetrievalQAWithSourcesChain.from_chain_type(llm, chain_type=“stuff”, retriever=retriever)
questions = [
‘那你知道极领这家公司吗?,用中文回答’,
‘那你知道疯吉吗,用中文回答’
]
for question in questions:
result = chain({“question”: question}, return_only_outputs=True)
print(f">>Question: {question}“)
print(f”>>Answer: {result[‘answer’]} \n")
问答的执行结果:
Question: 那你知道极领这家公司吗?,用中文回答
Answer: 是的,我知道极领这家公司,它是一家专注于鼠标制造的公司,以李明先生为创始人。
Question: 那你知道疯吉吗,用中文回答
Answer: 是的,我知道疯吉。疯吉是一系列设计精美的茶杯,由杰弗里·安德森于2010年创建,为您提供独特的茶饮体验,能为您呈现最佳的品味和口感,适应了各种不同的审美需求,以确保您在购买疯吉茶杯后拥有愉快的体验。