当前位置: 首页 > news >正文

openai-java

什么是openai-java

OpenAI-Java 是一个为 Java 开发者设计的开源库,用于简化与 OpenAI 模型(如 GPT-3、ChatGPT、GPT-4 等)的交互。从使用上来说跟python库还是挺像的, 不过更方便了java程序员来是用

引入依赖

<dependency><groupId>com.openai</groupId><artifactId>openai-java</artifactId><version>1.6.1</version>
</dependency>

实现一个简单对话

创建一个OpenAIClient

注意: 每个client都会维护一个连接池, 因此最好是全局使用一个client即可, 为了节省资源无需每次调用都创建一个client
这里我使用的LMStudio本地部署的模型, 因此我的baseUrl是本地的服务,即便本地没有apikey需要设置为空白字符串

OpenAIClient client = OpenAIOkHttpClient.builder().apiKey("").baseUrl("http://127.0.0.1:1234/v1").build();

创响应参数

addUserMessage即是提示词, 可以添加多个提示词, 这里我是用了qwen3-8b模型, "/no_think"是为了关闭模型的推理功能, 这里大家可以根据自己的模型来自行设置

ChatCompletionCreateParams params = ChatCompletionCreateParams .builder().addUserMessage("简单介绍一下自己").addUserMessage("/no_think").model("qwen3-8b").build();

完整代码

public class AIMain {public static void main(String[] args) throws Exception {OpenAIClient client = OpenAIOkHttpClient.builder().apiKey("").baseUrl("http://127.0.0.1:1234/v1").build();// 创建响应参数ChatCompletionCreateParams params = ChatCompletionCreateParams .builder().addUserMessage("简单介绍一下自己").addUserMessage("/no_think").model("qwen3-8b").build();// 发送请求并接收响应ChatCompletion chatCompletion = client.chat().completions().create(params);String json = MapperUtils.obj2json(chatCompletion);System.out.println(json);}
}

测试结果

{"id": "chatcmpl-u129ppf7md9q27hrul5prs","choices": [{"finish_reason": "stop","index": 0,"logprobs": null,"message": {"content": "<think>\n\n</think>\n\n你好!我是一个大型语言模型,由阿里巴巴集团旗下的通义实验室研发。我的名字是通义千问,你可以叫我Qwen。我能够进行多轮对话,回答各种问题,创作文字,比如写故事、写邮件、写剧本等,还能进行逻辑推理、数学计算和代码生成。我支持多种语言,包括中文、英文、日文、韩文、西班牙文等。\n\n我的目标是成为你身边的智能助手,帮助你更高效地获取信息、解决问题和创造内容。无论你是想学习新知识,还是需要一些灵感和创意,我都会尽力提供帮助。如果你有任何问题或需要 assistance,随时告诉我!","role": "assistant","valid": true},"valid": true}],"created": 1748869524,"model": "qwen3-8b","object": "chat.completion","system_fingerprint": "qwen3-8b","usage": {"completion_tokens": 142,"prompt_tokens": 15,"total_tokens": 157,"valid": true},"valid": true,"stats": {}
}
http://www.lqws.cn/news/81037.html

相关文章:

  • Java详解LeetCode 热题 100(23):LeetCode 206. 反转链表(Reverse Linked List)详解
  • 做好 4个基本动作,拦住性能优化改坏原功能的bug
  • ps色彩平衡调整
  • github 提交失败,连接不上
  • 数值与字典解决方案二十七讲:两列数据相互去掉重复值后合并
  • 【Java Web】速通Tomcat
  • 【性能调优系列】深入解析火焰图:从基础阅读到性能优化实战
  • 导入典籍数据
  • Docker 镜像原理
  • React 核心概念与生态系统
  • js的时间循环的讲解
  • sqlite-vec:谁说SQLite不是向量数据库?
  • 题目 3225: 蓝桥杯2024年第十五届省赛真题-回文字符串
  • 光伏功率预测 | LSTM多变量单步光伏功率预测(Matlab完整源码和数据)
  • 机器视觉图像处理之图像滤波
  • 从多巴胺的诱惑到内啡肽的力量 | 个体成长代际教育的成瘾困局与破局之道
  • Python----目标检测(《YOLO9000: Better, Faster, Stronger》和YOLO-V2的原理与网络结构)
  • 蓝云APP:云端存储,便捷管理
  • Linux入门(十三)动态监控系统监控网络状态
  • (Python网络爬虫);抓取B站404页面小漫画
  • 探秘 Minimax:AI 领域的创新先锋
  • C# 异常处理进阶:精准获取错误行号的通用方案
  • JS中的 WeakSet 和 WeakMap
  • Y1——链式前向星
  • 麒麟信安安装谷歌浏览器
  • JavaScript性能优化实战
  • 多群组部署
  • 3.需求分析与测试用例设计方法
  • [蓝桥杯]蚂蚁感冒
  • 计算机视觉NeRF