Discuz! BBS

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 60|回复: 0

kotlin建立okhttp3 的 post 如何打开ollama

[复制链接]

313

主题

449

帖子

2824

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2824
发表于 2025-6-25 20:26:27 | 显示全部楼层 |阅读模式
在使用 Kotlin 结合 OkHttp3 发送 POST 请求时,如果你想在请求中包含一个特定的头部(比如 X-OpenAI-API-Key),你可以在构建请求时添加这个头部。但是,如果你想要使用类似于 OpenAI 的 API 密钥("X-OpenAI-API-Key")但又想用它来调用一个类似于ollama的本地或远程模型服务,你需要确保正确地设置头部和请求体(如果需要的话)。

1. 添加依赖
首先,确保你的项目中已经添加了 OkHttp3 的依赖。在你的 build.gradle 文件中添加:
  1. dependencies {
  2.     implementation "com.squareup.okhttp3:okhttp:4.9.0"
  3. }
复制代码
2. 创建 OkHttpClient 实例
创建一个 OkHttpClient 的实例,这将用于发送请求。

  1. import okhttp3.OkHttpClient

  2. val client = OkHttpClient()
复制代码
3. 构建请求并添加头部
构建一个 POST 请求,并添加必要的头部,例如 Content-Type 和你的 API 密钥头部(例如 Authorization 或 X-API-Key,这取决于服务器的要求)。对于 Ollama,通常你可能需要传递 JSON 数据作为请求体。

  1. import okhttp3.*
  2. import okhttp3.MediaType.Companion.toMediaType
  3. import okhttp3.RequestBody.Companion.toRequestBody
  4. import java.util.concurrent.TimeUnit

  5. val mediaType = "application/json; charset=utf-8".toMediaType()
  6. val json = """{"prompt": "你的提示内容"}"""
  7. val requestBody = json.toRequestBody(mediaType)

  8. val request = Request.Builder()
  9.     .url("http://你的ollama服务地址/api/generate") // 确保这是正确的URL和路径
  10.     .post(requestBody)
  11.     .addHeader("Content-Type", "application/json")
  12.     .addHeader("Authorization", "Bearer 你的API密钥") // 如果Ollama需要API密钥的话
  13.     .build()
复制代码
4. 发送请求并处理响应
使用 OkHttpClient 发送请求并处理响应。





  1. client.newCall(request).enqueue(object : Callback {
  2.     override fun onFailure(call: Call, e: IOException) {
  3.         e.printStackTrace()
  4.     }

  5.     override fun onResponse(call: Call, response: Response) {
  6.         if (response.isSuccessful) {
  7.             val body = response.body?.string()
  8.             println("Response: $body")
  9.         } else {
  10.             println("Request failed with code ${response.code}")
  11.         }
  12.     }
  13. })
复制代码


注意:
确保替换 "http://你的ollama服务地址/api/generate" 为你的 Ollama 服务实际地址和路径。

根据 Ollama 的 API 文档,你可能需要调整头部或请求体格式。查阅 Ollama 的文档来确认正确的头部和请求体格式。例如,Ollama 可能不需要 Authorization 头部而是使用其他方式(如直接在 URL 中传递模型名等)。

如果 Ollama 不需要 API 密钥,只需确保不要添加 Authorization 头部或者使用正确的头部名称。例如,Ollama 可能使用的是 X-API-Key 或其他类似的头部。

通过上述步骤,你应该能够使用 OkHttp3 在 Kotlin 中发送 POST 请求到 Ollama 服务。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-7-7 18:52 , Processed in 0.022460 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表