python-3.x 使用自定义LLM在文档检索(SQL)或直接回答之间进行选择

ymdaylpp  于 2023-11-20  发布在  Python
关注(0)|答案(1)|浏览(146)

有没有一种方法可以让LLM自动选择使用一个函数来获取信息(检索QA)或直接根据他的知识回答问题。
例如:假设我正在制作一个航空公司的机器人,客户提供他的PNR/电子邮件进行验证。我已经制作了它来查询客户的详细信息。(使用langchain)
但是为了进一步回答这个问题,我如何让它直接回答跳过文档检索时,它是不需要的。例如:我说我问他是怎么做的。(只是一个一般性的问题llm,并使机器人为人类喜欢)
本题不需要取单。
我使用langchain,用于结构化数据(SQL)和非结构化数据(术语的PDF)的文档检索。
我试图使用开源LLM,如Llama或任何其他(试图完全避免openai)

guicsvcw

guicsvcw1#

在这种情况下,您可以在langchain中使用RunnableBranch:,您问题将在2个或更多LLM中路由
第一个LLM应该识别主题,如果主题与文档相关,LLM应该简单地说document,没有进一步的单词,然后你必须使用langchain解析输出,并检查输出是否是document,将其传递给其他LLM,这些LLM可以访问您的客户的详细信息。
下面是第一个提示符的样子:

const promptTemplate =
  PromptTemplate.fromTemplate(`Given the user question below, classify it as either being about \`docuemnt\`, \`airline\`, or \`Other\`.
                                     
Do not respond with more than one word.

<question>
{question}
</question>

Classification:`);

字符串
在问题得到回答后,你可以解析它并为它选择你的LLM:

const model = new ChatAnthropic({
  modelName: "claude-2",
});

const classificationChain = RunnableSequence.from([
  promptTemplate,
  model,
  new StringOutputParser(),
]);

const classificationChainResult = await classificationChain.invoke({
  question: "how are you?",
});
console.log(classificationChainResult);
// console.log: Other


现在你知道了这个主题,你可以使用if-else语句或者任何你喜欢做的事情。
如果您提供代码,我可以提供更准确的帮助。

相关问题