- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前在 NestJS 应用程序中有一个聊天功能,它使用 openai createChatCompletion API 根据用户输入生成消息并将响应流式传输回客户端。添加function calls对于 openai API 功能,我想选择执行函数调用,将记录保存在我的数据库中,保存后我想生成另一条消息并将响应流式传输到客户端。当没有生成函数调用时,我只想像当前一样标准地传输生成的消息。
问题是我必须在聊天完成的 API 调用中指定是否应流式传输响应,但我只希望在不返回函数调用时才流式传输响应。
感谢有关我如何在发送响应之前确定是否会生成函数调用或消息的任何建议。
最佳答案
如果您设置stream,聊天完成将流式传输函数调用。参数设置为 true,您可以在 blog 中看到这一点.
但是,您想要的是仅在不是函数调用时才使其流式传输。目前没有任何参数允许在聊天中进行类似的操作。但有一些潜在的解决方法。
对于解决方法,它部分取决于您的容错能力和确切的细节,因为您不完全知道模型将如何响应,因此很难在这里找到 Elixir 。
您有几种不同的选择。如果您的函数调用数量有限(4),您可以尝试使用 stop参数允许您设置模型停止的 4 个序列。将序列设置为函数调用。当函数调用弹出时,您可以捕获它,执行您的函数,然后返回到另一个流调用。还有方法 interrupt a stream您可以进行流式传输,直到看到函数调用,然后中断并执行与上面相同的操作。
下面的示例,它可能需要一些摆弄,但这应该大致流式传输,直到遇到一个函数然后停止。如前所述,您可以执行该函数并根据您的具体用例和设置进行新的调用。
messages = [{"role": "user", "content": "What's the weather like in Boston?"}]
functions = [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
]
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo-0613",
messages=messages,
functions=functions,
stop=["get_current_weather"]
function_call="auto", # auto is default, but we'll be explicit
)
如果这些解决方案不起作用,您可以将函数调用的流参数默认为 false,但是当用户知道不太可能存在时,他们可以传入参数 true(反之亦然),但有可能会出现这种情况可能会搞砸。
您也可以尝试预测它,有不同的方法可以做到这一点(关键词、额外的 ai/ml 模型),但让它预测是否会有函数调用,并确定您所经历的路径。话虽这么说,这有时会是错误的。
如果您有特定的容错能力(例如您可以承受不每次都进行流式传输,但无法承受流式传输函数调用),这可能会影响您的设计。对于这种情况,您可能不需要进行流式传输。
关于javascript - 确定OpenAI聊天完成是否执行函数调用或生成消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76587569/
我收到以下错误:模块“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加上上面的提示
我是一名优秀的程序员,十分优秀!