Steuerung des LLM-Ausgabeformats und Parsing von Ergebnissen
Von Wikiprompt, der freien Prompt-Enzyklopädie
Steuerung des LLM-Ausgabeformats und Parsing von Ergebnissen Ein Leitfaden zur Steuerung des LLM-Ausgabeformats mithilfe von Function Calling und Few-Shot-Beispielen, mit praktischen Code-Ausschnitten für stabiles JSON-Parsing.
Prompt-InhaltSpeichern
🌐
方法1:使用函数调用
函数调用是OpenAI为GPT API提供的一项功能,它让LLM在输出最终结果之前决定是否调用特定函数。例如,如果用户询问今天的天气,LLM会先输出一个中间结果,告诉你调用一个参数为'今天'的天气相关函数。然后你可以调用天气函数,获取结果,并告诉LLM向用户输出最终结果。
这个功能最初并不是为了控制输出格式而设计的,但它在告诉我们调用哪个函数时,会给出一个标准的JSON格式,即使使用GPT-3.5,也能提供相当稳定的JSON输出。我们可以利用这一点来控制LLM的输出格式。
我们可以将希望ChatGPT输出的内容定义为一个函数,但实际上不需要执行该函数,只需从LLM获取输出结果。
例如,如果我希望ChatGPT输出一个对象:
{
"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"
}
Melde dich an, um den vollständigen Prompt zu sehen
Weiter mit:
Mit der Anmeldung akzeptierst du unsere Nutzungsbedingungen und Datenschutz
Verwendung
Dieser Prompt ist für die Verwendung mit coding gedacht. Kopiere den Inhalt oben und füge ihn in dein bevorzugtes KI-Tool ein.
Für beste Ergebnisse passe die Platzhalter (eckige Klammern oder Großbuchstaben) an deine Anforderungen an.
Referenzen
- Kategorie: coding-Prompts
- Quelle: https://x.com/dotey/status/1720566358050590773
Diskussion
0 Kommentare