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": {}
}