最近ds热度也是极高,正好ds官方最近送了10元2000w tokens的api调用额度,稍微研究了一下api怎样使用,接入到了自己的QQ bot上,在此记录一下过程
Deepseek开放平台:https://platform.deepseek.com/
- 先注册登录帐号,这个不必多说了吧
- 进入api key页面,创建一个api key。保存好它,后面要用
- 调用webapi。我自己用的是kotlin + okhttp,把史山代码放在这做个参考:
val requestBody = """{
"model": "deepseek-r1",
"messages": $messagesString,
"stream": false
}""".trimIndent().toRequestBody("application/json".toMediaType())
val request = Request.Builder()
.url("https://api.deepseek.com/chat/completions")
.addHeader("Authorization", "Bearer ${你的API key}")
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.post(requestBody)
.build()
okHttpClient.newCall(request).execute().use { response ->
if (response.isSuccessful) {
return response.body?.string()
}
}
解析json数据,参考https://api-docs.deepseek.com/zh-cn/api/create-chat-completion#responses。我写的比较草率,实体类写的就比较简单:
@Serializable
data class DeepseekChatResponse(
val choices: List<Choice>
) {
@Serializable
data class Choice(
val message: Message
)
}
@Serializable
data class Message(
val role: String,
val content: String,
@SerialName("reasoning_content") val reasoningContent: String? = null
)
效果展示:

(code 45警告)
另外,由于ds官方的api时常繁忙无响应,后续我也试了一下使用ollama在本地部署蒸馏模型并接入,记录一下ollama api的一个小坑点:回传的json里的message直接就是一个json对象,而没有choices数组。这一点跟其他api还是不太一样,这是哪家的api?OpenAI API吗?我不知道