LLM 출력 형식 제어 및 결과 파싱
Wikiprompt, 무료 프롬프트 백과사전에서
LLM 출력 형식 제어 및 결과 파싱 시네마틱 3D 액션 광고 - [제품/브랜드 삽입], 극적인 스튜디
프롬프트 내용저장
🌐
方法 1:使用函数调用
函数调用是 OpenAI 为 GPT API 提供的一项功能,它让 LLM 在输出最终结果之前决定是否调用特定函数。例如,如果用户询问今天的天气,LLM 会先输出一个中间结果,告诉你去调用一个与天气相关的函数,并传入参数 'today'。然后你可以调用天气函数,获取结果,并告诉 LLM 向用户输出最终结果。
这项功能最初并不是为了控制输出格式,但它在告诉我们调用哪个函数时提供了一个标准的 JSON 格式,即使在 GPT-3.5 上也能提供相当稳定的 JSON 输出。我们可以利用这一点来控制 LLM 的输出格式。
我们可以将希望 ChatGPT 输出的内容定义为一个函数,但实际上我们不需要执行该函数,只需要从 LLM 获取输出结果即可。
例如,如果我希望 ChatGPT 输出一个 Object:
{
"name": "John",
"age": 30,
"city": "New York"
}
在调用 GPT 时,定义一个参数与期望 JSON 格式匹配的函数:
{
"name": "getUserInfo",
"description": "获取用户信息",
"parameters": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "用户的全名"
},
"age": {
"type": "number",
"description": "用户的年龄"
},
"city": {
"type": "string",
"description": "用户所在的城市"
}
},
"required": ["name", "age", "city"]
}
}
然后在调用 GPT 时,你可以获得稳定的 JSON 输出。局限性在于 API 必须支持函数调用。
方法 2:使用带输出格式示例的 few-shot
如果 API 不支持函数调用,我们可以使用 few-shot,通过提供一个或多个输出格式示例让 LLM 遵循。
例如,在翻译时,我可能会让 LLM 翻译两次:一次直译和一次意译,然后使用意译。在这种情况下,我不需要 JSON 格式,只需要使用特殊字符分隔两个结果,并通过这些字符进行拆分来获取意译即可。
对于 JSON 格式,few-shot 也可以使用,但在 GPT-3.5 上稳定性不够好,有时格式不一致。
确保你的响应可以被 Python json 解析,请使用以下格式作为示例:
{
"name": "John",
"age": 30,
"city": "New York"
}
전체 프롬프트를 보려면 로그인하세요
Continue with:
By logging in, you agree to our Terms of Use and Privacy Policy
사용법
이 프롬프트는 coding와 함께 사용하도록 설계되었습니다. 위의 프롬프트 내용을 복사하여 원하는 AI 도구에 붙여넣으세요.
최상의 결과를 얻으려면 자리 표시자(대괄호 또는 대문자로 표시)를 특정 요구 사항으로 사용자 지정할 수 있습니다.
토론
댓글 0개