
【deepseek android App】android kotlin 在app中接入deepseek api,实现对话
参考了一些下面这个,JAVA版本的接入方式:这个jsonBody 的配置比较迷,没有达到一个比较简洁的境界,一开始是准备创建一个Message的数据类,方便不同业务的适配,但是转化为jsonString之后服务器一直回报格式错误,格式这方面的限制比较死,最后还是用字符串拼接的方式来做了,如果有人知道怎么优化,欢迎评论指点下。
·
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
参考了一些下面这个,JAVA版本的接入方式:
https://blog.csdn.net/mng123/article/details/145568328
代码
换成自己申请的deepseek api key,直接调用sendMessage方法传入内容,改写responseCallback 即可与自己的app适配
代码如下:
首先引入okhttp 库
implementation (libs.okhttp)//网络连接
okhttp = { module = "com.squareup.okhttp3:okhttp", version = "4.12.0" }
然后新建一个类
import android.util.Log
import okhttp3.*
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import java.io.IOException
class DeepSeekApiHelper {
val API_URL = "https://api.deepseek.com/chat/completions"
val API_KEY = 自己的key
fun sendMessage(message: String) {
val client = OkHttpClient()
// 创建请求体
val mediaType = "application/json".toMediaTypeOrNull()
val jsonBody = "{\n" +
" \"model\": \"deepseek-chat\",\n" +
" \"messages\": [\n" +
" {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n" +
" {\"role\": \"user\", \"content\": \"$message\"}\n" +
" ],\n" +
" \"stream\": false\n" +
" }" // 根据API要求构造请求体
val body: RequestBody = RequestBody.create(mediaType,jsonBody )
// 创建请求
val request: Request = Request.Builder()
.url(API_URL)
.post(body)
.addHeader("Authorization", "Bearer $API_KEY")
.addHeader("Content-Type", "application/json")
.build() // 发送请求
val response = client.newCall(request).enqueue(
responseCallback = object : Callback {
override fun onFailure(call: Call, e: IOException) {
// 处理失败逻辑
}
@Throws(IOException::class)
override fun onResponse(call: Call, response: Response) {
response.body.use { responseBody ->
if (!response.isSuccessful) {
// 处理请求失败
throw IOException("DeepSeekApiHelper Unexpected code: $response")
}
// 处理成功响应
checkNotNull(responseBody)
val responseData = responseBody.string()
Log.d("DeepSeekApiHelper", "uploadLog onResponse: $responseData")
}
}
}
)
Log.e("DeepSeekApiHelper",response.toString())
}
}
总结
这个jsonBody 的配置比较迷,没有达到一个比较简洁的境界,一开始是准备创建一个Message的数据类,方便不同业务的适配,但是转化为jsonString之后服务器一直回报格式错误,格式这方面的限制比较死,最后还是用字符串拼接的方式来做了,如果有人知道怎么优化,欢迎评论指点下
更多推荐
所有评论(0)