- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 langchain/openai/faiss 来创建聊天机器人,该机器人可以读取所有 PDF,并可以根据从其中学到的内容进行回答。
我想知道是否有一种方法可以限制仅从文档中获取知识的答案,如果答案不在文档中,机器人应该回答“我不知道”或类似的内容。
这是代码:
llm = ChatOpenAI(temperature=0, max_tokens=1000,
model_name="gpt-3.5-turbo-16k")
memory = ConversationBufferMemory(memory_key="chat_history")
chat = ConversationalRetrievalChain.from_llm(
llm=llm,retriever=vector_store.as_retriever(),memory=memory)
if "messages" not in st.session_state:
st.session_state.messages = []
if not st.session_state.messages:
welcome_message = {"role": "assistant",
"content": "Hello, how can i help?"}
st.session_state.messages.append(welcome_message)
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
if prompt := st.chat_input("State your question"):
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.markdown(prompt)
result = chat({"question": prompt, "chat_history": [
(message["role"], message["content"]) for message in st.session_state.messages]})
with st.chat_message("assistant"):
full_response = result["answer"]
st.markdown(full_response)
st.session_state.messages.append(
{"role": "assistant", "content": full_response})
最佳答案
是的,有。但首先,请记住,聊天机器人不会从您加载到矢量存储中的 PDF 文件文本中“学习”任何内容;它会比较用户的问题嵌入,以找到与矢量存储中的文本嵌入最相似的匹配项。
为了让您开始使用具有对话功能的文档 QA 聊天机器人,我建议您尝试此代理:
from langchain.chat_models import ChatOpenAI
from langchain.agents.openai_functions_agent.agent_token_buffer_memory import AgentTokenBufferMemory
from langchain.agents.openai_functions_agent.base import OpenAIFunctionsAgent
from langchain.schema.messages import SystemMessage
from langchain.prompts import MessagesPlaceholder
from langchain.agents import AgentExecutor
retriever = vector_store.as_retriever()
tool = create_retriever_tool(
retriever,
"search_document_content",
"Useful for searching and querying the relevant content."
)
tools = [tool]
memory_key = "history"
memory = AgentTokenBufferMemory(memory_key = memory_key, llm = llm)
system_message = SystemMessage(
content=("""Use only the tools provided to look for context to answer
the user's question. If you don't know the answers to the user
questions, truthfully say you don't know. Don't attempt to make up
answers or hallucinate.""")
)
prompt = OpenAIFunctionsAgent.create_prompt(
system_message=system_message,
extra_prompt_messages = [MessagesPlaceholder(variable_name = memory_key)]
)
agent = OpenAIFunctionsAgent(llm = llm, tools = tools, prompt = prompt)
agent_executor = AgentExecutor(
agent = agent,
tools = tools,
memory = memory,
verbose = True,
return_intermediate_steps = True
)
result = agent_executor({"input": "<This is your PDF-related question>"})
看here有关使用检索器进行 QA 的更简单方法的更多信息。
关于openai-api - 如何限制机器人仅回答与文档相关的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77081638/
我收到以下错误:模块“openai”没有属性“ChatCompletion” 我检查了其他帖子。都在说升级OpenAI Python包或者升级Python。我都做了,但没有修复它。 Python:3.
我收到以下错误:模块“openai”没有属性“ChatCompletion” 我检查了其他帖子。都在说升级OpenAI Python包或者升级Python。我都做了,但没有修复它。 Python:3.
我有一个用例,非常需要来自 OpenAI API 的完全确定性响应。然而,玩弄温度似乎无法产生完全的决定论。 import openai openai.organization = "org-..."
OpenAI api 包含一个微调服务,将任务分为“提示”和“完成” https://platform.openai.com/docs/guides/fine-tuning 文档说准确度指标是根据完成
我通过openai的text-davinci-003可以正常返回对话信息,但是目前无法实现上下文关联功能。我搜索了一下,发现有一个“conversation_id”参数,但是添加该参数后,API返回“
我有一个用例,非常需要来自 OpenAI API 的完全确定性响应。然而,玩弄温度似乎无法产生完全的决定论。 import openai openai.organization = "org-..."
OpenAI api 包含一个微调服务,将任务分为“提示”和“完成” https://platform.openai.com/docs/guides/fine-tuning 文档说准确度指标是根据完成
我通过openai的text-davinci-003可以正常返回对话信息,但是目前无法实现上下文关联功能。我搜索了一下,发现有一个“conversation_id”参数,但是添加该参数后,API返回“
我想使用 openai.embeddings_utils import get_embeddings所以已经安装了openai Name: openai Version: 0.26.5 Summary
当我使用 GPT3 的 playground 时,我经常得到带有编号列表和段落格式的结果,如下所示: Here's what the above class is doing: 1. It creat
当我使用 GPT3 的 playground 时,我经常得到带有编号列表和段落格式的结果,如下所示: Here's what the above class is doing: 1. It creat
我想使用 openai.embeddings_utils import get_embeddings所以已经安装了openai Name: openai Version: 0.26.5 Summary
OpenAI/chat GPT也支持docx/pdf文件上传吗?。我想上传多个文件到openAI/chatGPT。我在https://platform.openai.com/docs/api-refe
openAI/chatGPT也支持docx/pdf文件上传吗? 我想上传多个文件到 openAI/chatGPT。我尝试了 https://platform.openai.com/docs/api-r
openAI/chatGPT也支持docx/pdf文件上传吗? 我想上传多个文件到 openAI/chatGPT。我尝试了 https://platform.openai.com/docs/api-r
如果我们查看环境的预览,它们会在右下角的动画中显示剧集的增加。 https://gym.openai.com/envs/CartPole-v1/ .是否有明确显示的命令? 最佳答案 我认为 Ope
是否有人从使用 text-embedding-ada-002 的 Azure OpenAI 嵌入部署中获得的结果与 OpenAI 的结果不同?相同的文本,相同的模型,结果在向量空间中相差相当远。 对于
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我正在学习gpt微调 我成功运行了这个命令:pip install --upgrade openai 我无法运行此命令:export OPENAI_API_KEY="sk-xxxxxxxxxxxxxx
如何解决Openai API 不断输出的问题,比如让gpt api 写一篇文章。如果内容中断,可以继续提问,从而继续输出以上内容。这在ChatGPT中很容易做到,但是Openai API加上上面的提示
我是一名优秀的程序员,十分优秀!