토론

LLM 출력 형식 제어 및 결과 파싱

Wikiprompt, 무료 프롬프트 백과사전에서

宝玉
기여자宝玉X출처

2023년 11월 3일

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 도구에 붙여넣으세요.

최상의 결과를 얻으려면 자리 표시자(대괄호 또는 대문자로 표시)를 특정 요구 사항으로 사용자 지정할 수 있습니다.

참고 자료

분류:coding| twitter| llm| output-format

토론