Skip to Content

Messages

POST https://api.fenno.ai/v1/messages x-api-key: <FENNO_API_KEY> anthropic-version: 2023-06-01 Content-Type: application/json

请求字段

字段类型含义
modelstring,必填精确的 Messages 可用模型 ID
max_tokensinteger,必填所选模型允许范围内的输出 token 上限
messagesarray,必填user/assistant 历史,content 为字符串或受支持内容块
systemstring 或 array,可选放在 messages 数组外的系统指令
streamboolean返回 message 与 content-block 事件
toolsarray,可选含 name、description、input_schema 的定义
tool_choice、thinkingobject,可选仅使用模型明确支持的取值

Python 示例

安装 anthropic,设置 FENNO_API_KEY 和支持 Messages 的 FENNO_MODEL:

import os from anthropic import Anthropic client = Anthropic( base_url="https://api.fenno.ai", api_key=os.environ["FENNO_API_KEY"], timeout=60.0, max_retries=0, ) response = client.messages.create( model=os.environ["FENNO_MODEL"], max_tokens=512, system="Answer concisely.", messages=[{"role": "user", "content": "What is an API gateway?"}], ) for block in response.content: if block.type == "text": print(block.text) print(response.stop_reason)

内容块与结束原因

content[] 不一定只有一个文本块。应按 type 处理文本、图片/文档输入、tool_use 和受支持的 thinking 块,并在延续对话时保留模型需要的非文本块。

常见结束原因有 end_turn、max_tokens、stop_sequence 和 tool_use。tool_use 表示应用应处理受允许的工具调用,不应直接当作最终回答;max_tokens 可能意味着输出不完整。

执行工具时,保留 assistant 的 tool_use 块,通过 user 消息里的 tool_result 回传对应 tool_use_id。不要混用 Chat Completions 的 role: tool 消息。

流式生命周期

message_start content_block_start -> content_block_delta* -> content_block_stop message_delta -> message_stop

流中可能有多个内容块、ping 和错误事件。增量可能承载文本、部分工具 JSON 或思考内容,需按块索引关联,收齐工具参数后再解析。

SDK 的 client.messages.stream(...) 上下文管理器可通过 text_stream 读取简单文本;使用工具的应用还必须处理非文本内容和最终结束原因。

继续阅读函数调用、提示缓存和错误格式。