Skip to content

对话补全接口

约 1294 字大约 4 分钟

2025-04-25

对话

接口地址:https://c4ai.ccccltd.cn/api/compatible/v1/chat/completions

请求方式:POST

请求数据类型:application/json

接口描述: 根据输入的上下文,生成对话。

请求示例:

{
  "model": "jiaorong-instruct",
  "messages": [
    {
      "role": "user",
      "content": "你是谁"
    }
  ],
  "stream": true
}

流式响应示例

{
  "object": "chat.completion.chunk",
  "created": 1744814638,
  "model": "jiaorong-instruct",
  "choices": [
    {
      "index": 0,
      "delta": {
        "content": "我是",
        "reasoning_content": null
      },
      "finish_reason": null
    }
  ],
  "system_fingerprint": "",
  "usage": {
    "prompt_tokens": 112,
    "completion_tokens": 3,
    "total_tokens": 115
  }
}

非流式响应示例

{
  "object": "chat.completion",
  "created": 1744814442,
  "model": "jiaorong-instruct",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "我是中交AI中心研发的交通建设行业大模型“jiaorong-instruct”,专为交通、基础设施及工程建设领域提供专业、安全、可靠的技术支持与行业知识服务。"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 112,
    "completion_tokens": 58,
    "total_tokens": 170
  },
  "system_fingerprint": ""
}

Python

from openai import OpenAI

client = OpenAI(api_key="", base_url="https://c4ai.ccccltd.cn/api/compatible/v1", default_headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
    })

stream = client.chat.completions.create(
    model="jiaorong-instruct",
    messages=[
        {
            "role": "user",
            "content": "你是谁?",
        }
    ],
    stream=True,
)

for event in stream:
    print(event)

Java

maven依赖

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
    <verseion>{请获取最新版本}</version>
</dependency>

配置

spring:
  ai:
    openai:
      base-url: https://c4ai.ccccltd.cn/api/compatible/v1
      api-key: sk-****************************************

controller

@RestController()
@RequestMapping("/api/v1/openai/")
public class ChatController implements IAiService {

    @Resource
    private OpenAiChatClient chatClient;

    /**
     * 生成对话(非流式)
     * @param message 对话输入
     * @return 模型输出
     */
    @RequestMapping(value = "generate", method = RequestMethod.GET)
    @Override
    public ChatResponse generate(@RequestParam("message") String message) {
        return chatClient.call(new Prompt(
                message,
                OpenAiChatOptions.builder()
                        .withModel("jiaorong-instruct")
                        .build()
        ));
    }
}

请求参数

参数名称参数说明请求类型是否必须数据类型
completeRequestCompleteRequestbodytrueCompleteRequest
  model使用的模型的标识符,参考/models接口truestring
  messages对话的消息列表,不能为空truearray
   rolefalsestring
   contentfalsestring
  stream如果设置为 True,将会以 SSE(server-sent events)的形式以流式发送消息增量。消息流以 data: [DONE] 结尾。falseboolean
  temperature采样温度,介于 0 和 2 之间。更高的值,如 0.8,会使输出更随机,而更低的值,如 0.2,会使其更加集中和确定。falsenumber(double)
  stop在遇到这些词时,API 将停止生成更多的 tokenfalsestring
  max_tokens介于 1 到 8192 间的整数,限制一次请求中模型生成 completion 的最大 token 数。输入 token 和输出 token 的总长度受模型的上下文长度的限制。falseinteger(int32)
  top_p作为调节采样温度的替代方案,模型会考虑前 top_p 概率的 token 的结果。所以 0.1 就意味着只有包括在最高 10% 概率中的 token 会被考虑。falsenumber(double)
  frequency_penalty介于 -2.0 和 2.0 之间的数字。如果该值为正,那么新 token 会根据其在已有文本中的出现频率受到相应的惩罚,降低模型重复相同内容的可能性。falsenumber(double)
  tools大模型可用的工具列表falselist
   type"function"falsestring
   functionfalseobject
    name函数名称,支持a-z, A-Z, 0-9, 下划线和横杠, 最长64字符。falsestring
    description描述函数的功能,模型用于理解如何调用该函数。falsestring
    parameters函数接受的参数,json格式falseobject
    strict是否严格基于json schema生成参数falseboolean
  enable_thinking是否开启深度思考(需要模型支持)falseboolean
  thinking_budget生成深度思考的最大token数falseinteger(int32)
  response_format大模型可用的工具列表falselist
   type可用参数:"text","json_schema","json_object"falsestring
   json_schema使用json_schema时,指定具体schemafalseobject
    namefalsestring
    descriptionfalsestring
    schemafalseobject
    strictfalseboolean

响应状态

状态码说明schema
200OK

对话(多模态)

使用图片理解接口,需要使用多模态的模型,如:jiaorong-qwen2.5-vl-72b-instruct

POST https://c4ai.ccccltd.cn/api/compatible/v1/chat/completions

请求参数说明:同上

Body 请求参数示例

{
  "max_tokens": 0,
  "top_p": 0,
  "frequency_penalty": 0,
  "enable_thinking": true,
  "model": "string",
  "messages": [
	{
	  "tool_call_id": "string",
	  "reasoning_content": "string",
	  "role": "string",
	  "content": [
		{
		  "image_url": {
			"url": null // url 参数可以传url,或者base64; 传base64需要加前缀。如data:image/png;base64
		  },
		  "type": "string",
		  "text": "string"
		}
	  ]
	}
  ],
  "stream": true,
  "temperature": 0,
  "stop": "string",
  "tools": [
	{
	  "type": "string",
	  "function": {
		"name": "string",
		"description": "string",
		"parameters": {},
		"strict": true
	  }
	}
  ]
}

headers 参数:同上

响应参数说明:同上

Restful 请求使用案例

请求参数:

{
  "model": "jiaorong-qwen2.5-vl-72b-instruct",
  "stream": false,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "image_url",
          "image_url": {
            "url": "https://t8.baidu.com/it/u=2330843266,1047035760&fm=217&app=126&size=re3,2&q=75&n=0&g=4n&f=PNG&fmt=auto&maxorilen2heic=2000000?s=31F6E832E081E9011C5D98F4030080B1"
          }
        },
        {
          "type": "text",
          "text": "这是什么"
        }
      ]
    }
  ]
}

返回值:

{
    "choices": [
        {
            "message": {
                "content": "这是华为(Huawei)的标志。华为是一家全球知名的科技公司,主要业务包括通信设备、信息技术解决方案、智能手机和其他消费电子产品等。华为的标志由一个红色的花瓣图案和“HUAWEI”四个字母组成,其中花瓣图案象征着公司的创新精神和对技术的追求。华为在全球范围内拥有广泛的影响力,特别是在通信技术和5G领域。",
                "role": "assistant"
            },
            "finish_reason": "stop",
            "index": 0,
            "logprobs": null
        }
    ],
    "object": "chat.completion",
    "usage": {
        "prompt_tokens": 47,
        "completion_tokens": 80,
        "total_tokens": 127,
        "prompt_tokens_details": {
            "cached_tokens": 0
        }
    },
    "created": 1751869737,
    "system_fingerprint": null,
    "model": "jiaorong-qwen2.5-vl-72b-instruct",
    "id": "chatcmpl-20b64b14-2b0c-9b05-9d52-0326a94676f4"
}