- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的是 gpt-4-0613
模型,具有单个函数,并在系统提示符中包含一些自定义数据。
如果该函数在聊天中很早就被触发,在前两个请求内,它的功能就很好,并且 API 会要求用户提供调用该函数所需的信息。
但是,如果稍后在对话中调用该函数,例如问题 5,则 API 将仅给出答案并发回函数调用。
如何阻止人工智能编造答案? API 无法从对话上下文中获取这些值。它们都是 100% 化妆的。
completion = openai.ChatCompletion.create(
model='gpt-4-0613',
messages=prompts,
functions=[
{
"name": "fill_form",
"description": "Helps the user create an XYZ Report",
"parameters": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "the full name of the person issuing this report"
},
"zip": {
"type": "string",
"description": "the 5 digit zip code of the address"
},
"address": {
"type": "string",
"description": "the street address, only the street and not the city, state or zip"
},
"year_end": {
"type": "string",
"description": "the full four digit year of the fiscal year"
},
},
"required": ["name", "address", "year_end", "zip"]
}
}],
)
我尝试过使用和不使用
function_call='auto'
没有影响的选项。
感谢您的帮助。
API 应始终询问用户函数的值,而不是虚构它们。
最佳答案
OpenAI 承认模型可能会幻觉(即弥补)函数参数,如官方 OpenAI documentation 中所述。 :
The basic sequence of steps for function calling is as follows:
- Call the model with the user query and a set of functions defined in the functions parameter.
- The model can choose to call a function; if so, the content will be a stringified JSON object adhering to your custom schema (note: themodel may generate invalid JSON or hallucinate parameters).
- Parse the string into JSON in your code, and call your function with the provided arguments if they exist.
- Call the model again by appending the function response as a new message, and let the model summarize the results back to the user.
这可以通过系统消息来缓解,如官方 OpenAI documentation 中所述。 :
Hallucinated outputs in function calls can often be mitigated with asystem message. For example, if you find that a model is generatingfunction calls with functions that weren't provided to it, try using asystem message that says: "Only use the functions you have beenprovided with."
通常,对话首先使用系统消息进行格式化,然后是交替的用户和助理消息,如官方 OpenAI documentation 中所述。 。您可以添加系统消息,如下所示:
Python
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
chatCompletion = openai.ChatCompletion.create(
model = "gpt-3.5-turbo-0613",
messages = [
{"role": "system", "content": "Only use the functions you have been provided with."}
]
)
print(chatCompletion.choices[0].message.content)
NodeJS
注意:OpenAI NodeJS SDK v4
是released于2023年8月16日发布,并且是对SDK的完全重写。下面的代码根据您当前拥有的版本而有所不同。请参阅v3
至v4
migration guide .
• 如果您有 OpenAI NodeJS SDK v3
:
const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const chatCompletion = await openai.createChatCompletion({
model: "gpt-3.5-turbo-0613",
messages: [{"role": "system", "content": "Only use the functions you have been provided with."}],
});
console.log(chatCompletion.data.choices[0].message.content);
• 如果您有 OpenAI NodeJS SDK v4
:
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
const chatCompletion = await openai.chat.completions.create({
model: "gpt-3.5-turbo-0613",
messages: [{"role": "user", "content": "Only use the functions you have been provided with."}],
});
console.log(chatCompletion.choices[0].message.content);
此外,尝试通过设置 function_call: {"name": "<insert-function-name>"}
强制模型调用特定函数。正如官方所说OpenAI documentation :
就您而言,它看起来像这样:
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
completion = openai.ChatCompletion.create(
model = "gpt-3.5-turbo-0613",
messages = messages,
functions = functions,
function_call = "fill_form", # Add this
)
print(completion.choices[0].message.content)
关于openai-api - OpenAI GPT-4 API : Why does gpt-4-0613 hallucinate (make up) function parameters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76608259/
我收到以下错误:模块“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加上上面的提示
我是一名优秀的程序员,十分优秀!