智诊科技智诊科技

WiseDiag 大模型

1. 接入配置 (Configuration)

在调用接口前,请配置以下基础信息。具体的API Key 将单独提供。

  • Model Name (模型名称): wisediag-large-latest
  • Base URL (基础地址): https://openapi.wisediag.com
  • 上下文窗口 (Context Window): 128k tokens(输入 + 输出共享,即 prompt_tokens + completion_tokens 不能超过此上限)
  • 推荐输出长度 (max_tokens): 8192,可满足绝大多数业务场景

2. 接口说明 (Endpoint)

  • 请求路径: /v1/chat/completions
  • 请求方式: POST
  • Content-Type: application/json
  • API 版本: 当前为 v1。路径中的 /v1/ 即代表接口版本号。当有新版本发布时,将以 /v2/ 等形式提供新端点,旧版本在过渡期内将继续可用,届时会通过公告提前通知废弃计划。

3. 请求参数 (Request Parameters)

参数名类型必填默认值说明
modelstring-固定值为 wisediag-large-latest
messageslist-对话上下文列表,包含 role (user/system/assistant) 和 content。接口本身不维护对话状态,多轮对话需由调用方自行累积历史消息(详见第 6 节)
streambooleanfalse是否开启流式传输。推荐设置为 true 以获得更好的实时响应体验
temperaturefloat0.6采样温度。控制输出的随机性,建议保持默认 0.6
top_pfloat0.95核采样概率。建议保持默认 0.95
max_tokensinteger81920生成内容的最大 Token 数。推荐设置为 8192,可满足绝大多数业务场景;模型上下文窗口为 128k,且输入 + 输出共享该上限
extra_bodyobject-扩展控制参数。当前支持 enable_thinking 用于关闭/开启深度思考(详见第 7 节)

重要建议:本模型已针对医疗推理任务做过专门调优,请仅传入上表列出的参数,其余采样字段沿用服务端默认即可。自行调整惩罚类、重复度类等高级采样参数会导致输出质量显著下降(典型表现:JSON 结构崩坏、内容重复、语义割裂)。

4. 调用示例 (Code Examples)

方式一:Python (推荐)

该接口完全兼容 OpenAI Python SDK (v1.0+)。请确保已安装库:pip install openai

注意: 该模型返回包含 reasoning_content(推理过程)和标准 content。以下代码展示了如何同时获取这两部分内容。

from openai import OpenAI
import os

# 配置客户端
client = OpenAI(
    api_key="YOUR_API_KEY",          # 请替换为实际提供的 Key
    base_url="https://openapi.wisediag.com/v1",
)

def chat_with_wisediag(prompt):
    messages = [
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": prompt}
    ]

    try:
        response = client.chat.completions.create(
            model="wisediag-large-latest",
            messages=messages,
            max_tokens=8192,
            temperature=0.6,
            top_p=0.95,
            stream=True,             # 开启流式输出
            # 如需关闭深度思考,使用:extra_body={"enable_thinking": False}
        )

        print("--- 正在生成回答 ---")
        full_reasoning = ""
        full_content = ""

        for chunk in response:
            # 处理 Usage 信息(通常在最后一个 chunk)
            if hasattr(chunk, "usage") and chunk.usage:
                print(f"\n[Token Usage] Prompt: {chunk.usage.prompt_tokens}, Completion: {chunk.usage.completion_tokens}")
                break

            delta = chunk.choices[0].delta

            # 获取推理过程 (Reasoning Content)
            reasoning_piece = getattr(delta, "reasoning_content", None)
            if reasoning_piece:
                print(reasoning_piece, end="", flush=True)
                full_reasoning += reasoning_piece

            # 获取最终回复内容 (Content)
            content_piece = getattr(delta, "content", None)
            if content_piece:
                print(content_piece, end="", flush=True)
                full_content += content_piece

        return full_content

    except Exception as e:
        print(f"请求发生错误: {e}")
        return None

if __name__ == "__main__":
    chat_with_wisediag("你好,请介绍一下你自己。")

方式二:cURL (命令行)

适用于快速测试接口连通性。

curl --location 'https://openapi.wisediag.com/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
    "model": "wisediag-large-latest",
    "messages": [
        {"role": "user", "content": "你好"}
    ],
    "max_tokens": 8192,
    "temperature": 0.6,
    "top_p": 0.95,
    "stream": true
}'

5. 响应字段说明 (Response Handling)

该模型在流式模式下(stream: true)会返回特殊字段。

  • delta.reasoning_content: 模型的思维链/推理过程内容。在最终答案生成前,模型可能会先输出这段推理文本。
  • delta.content: 标准的回复内容。
  • usage: 在流式结束时,最后一个数据包会包含 Token 消耗统计(包括 prompt_tokenscompletion_tokens),可用于计费和用量统计。

6. 多轮对话 (Multi-turn Conversations)

本接口为无状态接口,服务端不会保存任何对话历史。每次请求都是独立的,如需实现多轮对话,调用方需要自行在客户端维护 messages 数组,将历史对话按顺序传入。

实现方式

每轮对话后,将模型返回的 assistant 回复追加到 messages 列表中,再将用户的新问题追加为新的 user 消息,一并发送给接口。

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://openapi.wisediag.com/v1",
)

conversation_history = [
    {"role": "system", "content": "You are a helpful assistant."}
]

def chat(user_input):
    conversation_history.append({"role": "user", "content": user_input})

    response = client.chat.completions.create(
        model="wisediag-large-latest",
        messages=conversation_history,
        stream=False,
    )

    assistant_reply = response.choices[0].message.content
    conversation_history.append({"role": "assistant", "content": assistant_reply})
    return assistant_reply

# 第一轮
print(chat("帮我解释一下什么是血常规检查?"))
# 第二轮(模型能理解"它"指的是上文的"血常规检查")
print(chat("它一般包含哪些指标?"))

注意事项

  • Token 累积: 每轮对话的 messages 会包含全部历史,Token 消耗会随轮次增长。建议在历史过长时做截断或摘要,控制在上下文窗口内。
  • 上下文窗口: 模型的上下文窗口有限,当历史消息总 Token 数超出限制时,请裁剪早期消息。

7. 功能边界说明 (Feature Scope)

推荐问题(追问)

当前接口不会在响应中主动返回"推荐问题"或"追问建议"。如需实现此功能,开发者可在 system 提示词中引导模型在回复末尾生成推荐问题,再自行解析提取。

深度思考 (Reasoning Content)

相关章节:第 5 节「响应字段说明」中的 reasoning_content 字段。

模型在生成最终回答前,可能会先输出一段推理过程(通过 reasoning_content 字段返回)。请注意:

  • 输出顺序: 流式模式下,reasoning_content 会在 content 之前输出。当推理完成后,才会开始返回最终回答内容。
  • 额外耗时: 深度思考阶段会增加首个 content Token 的等待时间(通常数秒到十余秒),这属于正常行为,并非接口性能问题。
  • 可能为空: 部分简单问题可能不触发深度思考,此时 reasoning_content 不会出现在响应中。

关闭深度思考

默认开启深度思考。对于严格结构化输出(如要求返回固定 JSON 格式)或追求低延迟的场景,可主动关闭:

response = client.chat.completions.create(
    model="wisediag-large-latest",
    messages=messages,
    stream=True,
    extra_body={"enable_thinking": False},   # 关闭深度思考
)

cURL 等价写法:

curl --location 'https://openapi.wisediag.com/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
    "model": "wisediag-large-latest",
    "messages": [{"role": "user", "content": "你好"}],
    "stream": true,
    "enable_thinking": false
}'

关闭后,响应中将不会出现 reasoning_content 字段,模型会直接输出 content,首 Token 延迟显著降低。


本页目录