# GPT-6 Luna 判断(Decisions):图片与文本判断的调用方法 Source: https://ofox.ai/zh/docs/develop/models/gpt-6-luna OpenAI 的 GPT-6 Luna 既是对话模型,也支持通过 Decisions API 进行**类型化判断**。判断模式的用法与 [Jev](https://ofox.ai/zh/docs/develop/models/jev) 相同:请求中提供待判断的内容和一组问题,模型为每个问题返回结构化答案及其概率。与 Jev 相比,GPT-6 Luna 支持**图片输入**。 本页介绍 GPT-6 Luna 的判断用法。对话用法见 [GPT 系列](https://ofox.ai/zh/docs/develop/models/gpt)。 ## 与 Jev 的选择 **要点**:需要对图片进行判断时,使用 GPT-6 Luna;仅处理文本或 JSON 且对响应速度要求较高时,使用 Jev。 | | GPT-6 Luna | Jev | |---|---|---| | 模型 ID | `openai/gpt-6-luna` | `typesafe/jev-latest` | | 输入 | 文本、图片 | 文本、JSON | | 问题类型 | predicate、choice、score | predicate、choice、score | | 调用路径 | `/v1/decisions`、`/openai/v1/decisions`、`/typesafe/v1/systemone` | 同左 | | 单次耗时(实测) | 约 0.5 秒(首次请求可能需要约 2.5 秒) | 约 0.3 秒 | 同一组问题在两个模型上的判断结果基本一致:实测同一条退款工单,两者均判定为退款申请并分配给 `billing`。 ## 快速开始 **接入信息** - Base URL: `https://api.ofox.ai/v1` - 模型 ID: `openai/gpt-6-luna` - 接口路径: `/v1/decisions` — POST 使用 OpenAI 官方 Python SDK 调用时,需安装包含 `client.decisions` 的版本(`pip install -U openai`,实测 3.31.0 可用)。API Key 的创建方式见 [Jev · 快速开始](https://ofox.ai/zh/docs/develop/models/jev#quickstart)。 ```python filename="luna_text.py" showLineNumbers import os from openai import OpenAI client = OpenAI(base_url="https://api.ofox.ai/v1", api_key=os.environ["OFOX_API_KEY"]) r = client.decisions.create( model="openai/gpt-6-luna", input="客户留言:我被重复扣款了,今天必须退款。", questions=[ {"type": "predicate", "name": "refund", "instructions": "客户是否在申请退款?"}, { "type": "choice", "name": "team", "instructions": "这张工单应由哪个团队处理?", "choices": [ {"value": "billing", "description": "扣款、发票、退款"}, {"value": "technical", "description": "故障、报错、接入问题"}, {"value": "other", "description": "以上都不是"}, ], }, ], ) refund, team = r.answers print(refund.probability, team.choice, team.confidence) ``` 输出: ```text 1.0 billing 1.0 ``` ## 图片判断 传入图片时,`input` 需使用消息数组,在 `content` 中以 `input_image` 传入图片,图片使用 base64 data URL。可同时传入一段 `input_text` 说明图片来源。 ```python filename="luna_image.py" showLineNumbers import base64 import os from openai import OpenAI client = OpenAI(base_url="https://api.ofox.ai/v1", api_key=os.environ["OFOX_API_KEY"]) with open("product.jpg", "rb") as f: image = "data:image/jpeg;base64," + base64.b64encode(f.read()).decode() r = client.decisions.create( model="openai/gpt-6-luna", input=[{ "role": "user", "content": [ {"type": "input_text", "text": "用户上传的商品图片"}, {"type": "input_image", "image_url": image}, ], }], questions=[ {"type": "predicate", "name": "has_text", "instructions": "图片中是否有文字?"}, { "type": "choice", "name": "shape", "instructions": "图片左侧的图形是什么形状?", "choices": [{"value": "circle"}, {"value": "square"}, {"value": "triangle"}, {"value": "other"}], }, ], ) for a in r.answers: print(a.name, getattr(a, "probability", None) or a.choice) print(r.usage.prompt_tokens) ``` 输出: ```text has_text 1.0 shape circle 535 ``` 示例图片为白底上的红色圆形、蓝色方形与一行文字,两个问题均判断正确。字段定义见 [Decisions API · 输入格式](https://ofox.ai/zh/docs/api/decisions#input)。 ## 问题设计与上线准备 Jev 文档中的以下内容同样适用于 GPT-6 Luna: - [问题设计](https://ofox.ai/zh/docs/develop/models/jev/writing):选项应覆盖全部情况、为选项编写描述、为问题设置 `name`,以及返回字段的含义。 - [上线准备](https://ofox.ai/zh/docs/develop/models/jev/production):使用人工标注样本设置置信度阈值、将多个问题合并到同一请求。 ## 计费 判断模式与对话模式分别计费,判断模式的单价见[模型页](https://ofox.ai/zh/models/openai/gpt-6-luna)。实测判断请求返回的 `usage` 仅包含 `prompt_tokens`(含图片部分),不包含 `completion_tokens`。 ## 常见报错 报错信息与处理方法见 [Jev · 常见报错](https://ofox.ai/zh/docs/develop/models/jev#errors) 与 [Decisions API · 常见报错](https://ofox.ai/zh/docs/api/decisions#errors)。其中与 Jev 图片输入相关的报错不适用于 GPT-6 Luna。 ## 官方文档 - [OpenAI · Decisions](https://developers.openai.com/api/docs/guides/decisions) ## 常见问题 **GPT-6 Luna 的判断模式与对话模式有何区别?** 判断模式通过 /v1/decisions 调用,仅在给定的选项和级别内作答,并返回概率与置信度;对话模式通过 /v1/chat/completions 或 /v1/responses 调用,生成文本回答。两种模式分别计费。 **何时选择 GPT-6 Luna,何时选择 Jev?** 需要对图片进行判断时选择 GPT-6 Luna;仅处理文本或 JSON 且对响应速度要求较高时选择 Jev。两者的请求格式与问题类型相同,切换时仅需修改 model。 **是否可以使用 TypeSafe SDK 调用 GPT-6 Luna?** 可以。实测 /typesafe/v1/systemone 与 /openai/v1/decisions 均可调用 openai/gpt-6-luna,调用方式与 Jev 相同。