当前位置: 首页 > 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.xdnf.cn/news/775603.html

相关文章:

  • 白银价格查询接口如何用Java进行调用?
  • 【nm】nm命令的使用:查看.so中的符号信息
  • ps自然饱和度调整
  • 江科大RTC实时时钟hal库实现
  • 模块二:C++核心能力进阶(5篇)第三篇:《异常安全:RAII与异常传播的最佳实践》
  • 性能测试的概念和场景设计
  • 【LLM】AI Agents vs. Agentic AI(概念应用挑战)
  • 污痕圣杯:阿瓦隆的陨落 整合包 离线版
  • vite构建工具
  • Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String
  • 基于springboot的家政服务预约系统
  • LINUX62软链接;核心目录;错题:rpm -qa |grep<包名> 、rpm -ql<包名>;rm -r rm -rf;合并 cat
  • Ubuntu安装遇依赖包冲突解决方法
  • Flex 布局基础
  • svg与Three.js对比
  • 295. 数据流的中位数
  • DAY01:【ML 第三弹】基本概念和建模流程
  • GNURadio实现MIMO OFDM文件传输
  • 17.进程间通信(三)
  • ps可选颜色调整
  • 每日一道面试题---ArrayList的自动扩容机制(口述版本)
  • LLM模型量化从入门到精通:Shrink, Speed, Repeat
  • Java线程生命周期详解
  • 【数据分析】第三章 numpy(1)
  • 第二十一章 格式化输出
  • 制作开发AI试衣换装小程序系统介绍
  • URP - 水效果Shader
  • 类和对象(二)
  • 《Pytorch深度学习实践》ch3-反向传播
  • 使用ArcPy批量处理矢量数据