{"id":1225,"date":"2024-04-27T03:35:03","date_gmt":"2024-04-27T03:35:03","guid":{"rendered":"https:\/\/www.nicekj.com\/?p=1225"},"modified":"2024-04-27T03:35:03","modified_gmt":"2024-04-27T03:35:03","slug":"shiyongopenaijavasdkzhenghechatgpt","status":"publish","type":"post","link":"https:\/\/www.nicekj.com\/shiyongopenaijavasdkzhenghechatgpt.html","title":{"rendered":"\u4f7f\u7528 openai-java-sdk \u6574\u5408 ChatGPT"},"content":{"rendered":"<blockquote>\n<p>\u63a8\u8350\u4e00\u5957\u57fa\u4e8e SpringBoot \u5f00\u53d1\u7684\u5168\u5e73\u53f0\u6570\u636e (\u6570\u636e\u5e93\u7ba1\u7406\u5de5\u5177) \u529f\u80fd\u6bd4\u8f83\u5b8c\u5584\uff0c\u5efa\u8bae\u4e0b\u8f7d\u4f7f\u7528: github.com\/EdurtIO\/datacap \u76ee\u524d\u5df2\u7ecf\u652f\u6301 40+ \u591a\u79cd\u6570\u636e\u6e90\u3002\u56fd\u5185\u9996\u4e2a\u5e94\u7528 ChatGPT \u5230\u6570\u636e\u7ba1\u7406\u7cfb\u7edf\u4e2d\u9879\u76ee\u3002<\/p>\n<\/blockquote>\n<p>github \u5730\u5740\uff1a<a href=\"https:\/\/link.juejin.cn?target=https%3A%2F%2Fgithub.com%2Fdevlive-community%2Fopenai-java-sdk\" target=\"_blank\" title=\"https:\/\/github.com\/devlive-community\/openai-java-sdk\" ref=\"nofollow noopener noreferrer\" rel=\"noopener\">github.com\/devlive-com\u2026<\/a><\/p>\n<p>\u672c\u6587\u6211\u4eec\u4e3b\u8981\u8bb2\u8ff0\u901a\u8fc7 <a href=\"https:\/\/link.juejin.cn?target=https%3A%2F%2Fgithub.com%2Fdevlive-community%2Fopenai-java-sdk\" target=\"_blank\" title=\"https:\/\/github.com\/devlive-community\/openai-java-sdk\" ref=\"nofollow noopener noreferrer\" rel=\"noopener\"><code>openai-java-sdk<\/code><\/a> \u4f9d\u8d56\u6574\u5408\u8bbf\u95ee OpenAi \u63d0\u4f9b\u7684\u529f\u80fd\u3002<\/p>\n<p>OpenAI Java SDK \u4e3b\u8981 \u4e3a Java \u5f00\u53d1\u4eba\u5458\u63d0\u4f9b\u65b9\u4fbf\u6613\u7528\u7684 SDK \u6765\u4e0e OpenAI \u7684 API \u8fdb\u884c\u4ea4\u4e92\u3002<\/p>\n<h3 data-id=\"heading-0\">\u6784\u5efa <code>maven<\/code> \u9879\u76ee\uff0c\u5e76\u6dfb\u52a0\u4f9d\u8d56<\/h3>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">xml<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-xml code-block-extension-codeShowNum\" lang=\"xml\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dependency<\/span>&gt;<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>org.devlive.sdk<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">groupId<\/span>&gt;<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>openai-java-sdk<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">version<\/span>&gt;<\/span>1.2.0<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">version<\/span>&gt;<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\"><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">dependency<\/span>&gt;<\/span><\/span>\n<\/code><\/pre>\n<p>\u63a8\u8350\u5c06 <code>1.2.0<\/code> \u66ff\u6362\u4e3a <code>LATEST<\/code>\uff0c\u8fd9\u6837\u53ef\u4ee5\u59cb\u7ec8\u4f7f\u7528\u6700\u65b0\u7248\u672c\u3002<\/p>\n<h3 data-id=\"heading-1\">\u6784\u5efa\u8fde\u63a5\u5ba2\u6237\u7aef<\/h3>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">java<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-java code-block-extension-codeShowNum\" lang=\"java\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-type\">OpenAiClient<\/span> <span class=\"hljs-variable\">client<\/span> <span class=\"hljs-operator\">=<\/span> OpenAiClient.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">        .apiKey(System.getProperty(<span class=\"hljs-string\">\"openai.token\"<\/span>))<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">        .build();<\/span>\n<\/code><\/pre>\n<p>\u9ed8\u8ba4\u6211\u4eec\u53ea\u9700\u8981\u6307\u5b9a OpenAi \u63d0\u4f9b\u7684\u5bc6\u94a5\u5373\u53ef\u3002\u5982\u679c\u6211\u4eec\u9700\u8981\u4f7f\u7528\u7b2c\u4e09\u65b9\u63d0\u4f9b\u7684 OpenAi \u955c\u50cf\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\uff1a<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">java<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-java code-block-extension-codeShowNum\" lang=\"java\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-type\">OpenAiClient<\/span> <span class=\"hljs-variable\">client<\/span> <span class=\"hljs-operator\">=<\/span> OpenAiClient.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">        .apiHost(System.getProperty(<span class=\"hljs-string\">\"proxy.host\"<\/span>))<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">        .apiKey(System.getProperty(<span class=\"hljs-string\">\"proxy.token\"<\/span>))<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">        .build();<\/span>\n<\/code><\/pre>\n<p><code>proxy.host<\/code> \u7b2c\u4e09\u65b9\u670d\u52a1\u63d0\u4f9b\u7684\u4e3b\u673a\u540d<\/p>\n<p><code>proxy.token<\/code> \u7b2c\u4e09\u65b9\u670d\u52a1\u63d0\u4f9b\u7684\u5bc6\u94a5<\/p>\n<h3 data-id=\"heading-2\">\u6784\u5efa Completions<\/h3>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">java<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-java code-block-extension-codeShowNum\" lang=\"java\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-type\">CompletionEntity<\/span> <span class=\"hljs-variable\">configure<\/span> <span class=\"hljs-operator\">=<\/span> CompletionEntity.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">        .model(CompletionModel.TEXT_DAVINCI_003.getName())<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">        .prompt(<span class=\"hljs-string\">\"\u6d4b\u8bd5\u4e00\u4e0b\"<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">        .temperature(<span class=\"hljs-number\">2D<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">        .build();<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">client.createCompletion(configure)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">        .getChoices()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">        .forEach(System.out::println);<\/span>\n<\/code><\/pre>\n<p>\u8fd0\u884c\u7a0b\u5e8f\u540e\uff0c\u8f93\u5165\u5927\u6982\u5982\u4e0b\u5185\u5bb9\uff1a<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">java<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-java code-block-extension-codeShowNum\" lang=\"java\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">ChoiceEntity(content=git diff<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">git diff \u6069\u00b7\u80dc\u6069, index=<span class=\"hljs-number\">0<\/span>, logProb=<span class=\"hljs-literal\">null<\/span>, finishReason=length)<\/span>\n<\/code><\/pre>\n<blockquote>\n<p>\u5982\u679c\u6211\u4eec\u9700\u8981\u66ff\u6362\u5176\u4ed6\u6a21\u578b\u53ea\u9700\u8981\u66ff\u6362 <code>.model(CompletionModel.TEXT_DAVINCI_003.getName())<\/code> \u5373\u53ef\u3002<\/p>\n<\/blockquote>\n<h3 data-id=\"heading-3\">\u6784\u5efa Chat Completions<\/h3>\n<p>\u901a\u8fc7\u8be5\u65b9\u5f0f\u53ef\u4ee5\u5b9e\u73b0 ChatGPT \u7684\u5bf9\u8bdd\u6a21\u5f0f\u3002<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">java<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-java code-block-extension-codeShowNum\" lang=\"java\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">List&lt;CompletionMessageEntity&gt; messages = Lists.newArrayList();<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">messages.add(CompletionMessageEntity.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">        .content(<span class=\"hljs-string\">\"Hello, my name is openai-java-sdk\"<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">        .build());<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\"><span class=\"hljs-type\">CompletionChatEntity<\/span> <span class=\"hljs-variable\">configure<\/span> <span class=\"hljs-operator\">=<\/span> CompletionChatEntity.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">        .messages(messages)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">        .build();<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">client.createChatCompletion(configure)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">        .getChoices()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">        .forEach(choice -&gt; messages.add(choice.getMessage()));<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">messages.add(CompletionMessageEntity.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">        .content(<span class=\"hljs-string\">\"What is my name?\"<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\">        .build());<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"17\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"18\">client.createChatCompletion(configure)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"19\">        .getChoices()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"20\">        .forEach(choice -&gt; {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"21\">            System.out.println(choice.getMessage());<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"22\">        });<\/span>\n<\/code><\/pre>\n<p>\u8fd0\u884c\u7a0b\u5e8f\u540e\uff0c\u8f93\u5165\u5927\u6982\u5982\u4e0b\u5185\u5bb9\uff1a<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">java<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-java code-block-extension-codeShowNum\" lang=\"java\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">CompletionMessageEntity(role=assistant, content=Your name is <span class=\"hljs-string\">\"openai-java-sdk\"<\/span> as mentioned earlier., name=<span class=\"hljs-literal\">null<\/span>)<\/span>\n<\/code><\/pre>\n<p>\u5728\u672c\u5730\u8c03\u7528\u4e2d\u6211\u4eec\u901a\u8fc7\u4f20\u9012\u4e0a\u4e0b\u6587\u5bf9 Ai \u63d0\u4f9b\u4e00\u4e9b\u76f8\u5173\u4fe1\u606f\uff0c\u65b9\u4fbf\u4f7f\u5176\u8bb0\u5f55\u6211\u4eec\u8981\u83b7\u53d6\u7684\u5185\u5bb9\u3002<\/p>\n<blockquote>\n<p>\u5982\u679c\u6211\u4eec\u9700\u8981\u66ff\u6362\u5176\u4ed6\u6a21\u578b\u53ea\u9700\u8981\u66ff\u6362 <code>.model(CompletionModel.TEXT_DAVINCI_003.getName())<\/code> \u5373\u53ef\u3002<\/p>\n<\/blockquote>\n<h3 data-id=\"heading-4\">\u81ea\u52a8\u91ca\u653e\u8d44\u6e90<\/h3>\n<p>\u4ee5\u4e0a\u63d0\u4f9b\u7684\u65b9\u5f0f\u65e0\u6cd5\u81ea\u52a8\u91ca\u653e\u6211\u4eec\u6784\u5efa\u7684\u5ba2\u6237\u7aef\u7b49\u8d44\u6e90\uff0c\u8fd9\u6837\u5c31\u4f1a\u5bfc\u81f4\u6211\u4eec\u8fc7\u5ea6\u6d88\u8017\uff0c\u5982\u679c\u8bbf\u95ee\u8fc7\u5927\u4f1a\u5bfc\u81f4 OOM\u3002<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">java<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-java code-block-extension-codeShowNum\" lang=\"java\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-keyword\">try<\/span> (<span class=\"hljs-type\">OpenAiClient<\/span> <span class=\"hljs-variable\">client<\/span> <span class=\"hljs-operator\">=<\/span> OpenAiClient.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">        .apiKey(System.getProperty(<span class=\"hljs-string\">\"openai.token\"<\/span>))<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">        .build()) {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">    List&lt;CompletionMessageEntity&gt; messages = Lists.newArrayList();<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">    messages.add(CompletionMessageEntity.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">            .content(<span class=\"hljs-string\">\"Hello, my name is openai-java-sdk\"<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">            .build());<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">    <span class=\"hljs-type\">CompletionChatEntity<\/span> <span class=\"hljs-variable\">configure<\/span> <span class=\"hljs-operator\">=<\/span> CompletionChatEntity.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">            .messages(messages)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">            .build();<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">    client.createChatCompletion(configure)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">            .getChoices()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">            .forEach(choice -&gt; messages.add(choice.getMessage()));<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"17\">    messages.add(CompletionMessageEntity.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"18\">            .content(<span class=\"hljs-string\">\"What is my name?\"<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"19\">            .build());<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"20\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"21\">    client.createChatCompletion(configure)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"22\">            .getChoices()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"23\">            .forEach(choice -&gt; {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"24\">                System.out.println(choice.getMessage());<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"25\">            });<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"26\">}<\/span>\n<\/code><\/pre>\n<h3 data-id=\"heading-5\">\u81ea\u5b9a\u4e49 OkHttpClient<\/h3>\n<p>\u9ed8\u8ba4\u4f1a\u63d0\u4f9b\u4e00\u4e2a <code>OkHttpClient<\/code>\uff0c\u91cc\u9762\u914d\u7f6e\u4e86\u9ed8\u8ba4\u7684\u4e00\u4e9b\u914d\u7f6e\uff0c\u6bd4\u5982\u8d85\u65f6\u65f6\u95f4\u7b49\uff0c\u5982\u679c\u6211\u4eec\u9700\u8981\u81ea\u5b9a\u4e49\u8fd9\u4e9b\u53c2\u6570\u6211\u4eec\u9700\u8981\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">java<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-java code-block-extension-codeShowNum\" lang=\"java\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-keyword\">try<\/span> (<span class=\"hljs-type\">OpenAiClient<\/span> <span class=\"hljs-variable\">client<\/span> <span class=\"hljs-operator\">=<\/span> OpenAiClient.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">        .apiKey(System.getProperty(<span class=\"hljs-string\">\"openai.token\"<\/span>))<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">        .client(okHttpClient)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">        .build()) {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">    List&lt;CompletionMessageEntity&gt; messages = Lists.newArrayList();<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">    messages.add(CompletionMessageEntity.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">            .content(<span class=\"hljs-string\">\"Hello, my name is openai-java-sdk\"<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">            .build());<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">    <span class=\"hljs-type\">CompletionChatEntity<\/span> <span class=\"hljs-variable\">configure<\/span> <span class=\"hljs-operator\">=<\/span> CompletionChatEntity.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">            .messages(messages)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">            .build();<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">    client.createChatCompletion(configure)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">            .getChoices()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\">            .forEach(choice -&gt; messages.add(choice.getMessage()));<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"17\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"18\">    messages.add(CompletionMessageEntity.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"19\">            .content(<span class=\"hljs-string\">\"What is my name?\"<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"20\">            .build());<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"21\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"22\">    client.createChatCompletion(configure)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"23\">            .getChoices()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"24\">            .forEach(choice -&gt; {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"25\">                System.out.println(choice.getMessage());<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"26\">            });<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"27\">}<\/span>\n<\/code><\/pre>\n<p>\u5f53\u7136\u5982\u679c\u6211\u4eec\u53ea\u662f\u4fee\u6539\u4e00\u4e9b\u8d85\u65f6\u65f6\u95f4\u76f8\u5173\u95ee\u9898\u53ef\u4ee5\u53c2\u8003\u4ee5\u4e0b\u4ee3\u7801\uff1a<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">java<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-java code-block-extension-codeShowNum\" lang=\"java\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-keyword\">try<\/span> (<span class=\"hljs-type\">OpenAiClient<\/span> <span class=\"hljs-variable\">client<\/span> <span class=\"hljs-operator\">=<\/span> OpenAiClient.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">    .apiKey(System.getProperty(<span class=\"hljs-string\">\"openai.token\"<\/span>))<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">    .timeout(<span class=\"hljs-number\">10<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">    .unit(TimeUnit.SECONDS)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">    .build()) {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">List&lt;CompletionMessageEntity&gt; messages = Lists.newArrayList();<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">messages.add(CompletionMessageEntity.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">        .content(<span class=\"hljs-string\">\"Hello, my name is openai-java-sdk\"<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">        .build());<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\"><span class=\"hljs-type\">CompletionChatEntity<\/span> <span class=\"hljs-variable\">configure<\/span> <span class=\"hljs-operator\">=<\/span> CompletionChatEntity.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">        .messages(messages)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">        .build();<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">client.createChatCompletion(configure)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\">        .getChoices()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"17\">        .forEach(choice -&gt; messages.add(choice.getMessage()));<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"18\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"19\">messages.add(CompletionMessageEntity.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"20\">        .content(<span class=\"hljs-string\">\"What is my name?\"<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"21\">        .build());<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"22\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"23\">client.createChatCompletion(configure)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"24\">        .getChoices()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"25\">        .forEach(choice -&gt; {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"26\">            System.out.println(choice.getMessage());<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"27\">        });<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"28\">}<\/span>\n<\/code><\/pre>\n<p>\u6211\u4eec\u901a\u8fc7\u6307\u5b9a <code>.timeout(10)<\/code> \u914d\u7f6e\u65f6\u957f\uff0c\u901a\u8fc7 <code>.unit(TimeUnit.SECONDS)<\/code> \u65f6\u957f\u5355\u4f4d\uff0c\u793a\u4f8b\u4e2d\u6211\u4eec\u914d\u7f6e\u7684\u662f <code>10\u79d2<\/code>\u3002<\/p>\n<h3 data-id=\"heading-6\">\u4f7f\u7528 Azure \u63d0\u4f9b\u7684 OpenAi<\/h3>\n<p>\u5728 <a href=\"https:\/\/link.juejin.cn?target=https%3A%2F%2Fopenai-java-sdk.devlive.org%2Freference%2Fprovider%2Fazure.html\" target=\"_blank\" title=\"https:\/\/openai-java-sdk.devlive.org\/reference\/provider\/azure.html\" ref=\"nofollow noopener noreferrer\" rel=\"noopener\">Azure<\/a> \u63d0\u4f9b\u7684\u670d\u52a1\u4e2d\uff0c\u6709\u4e9b\u65b9\u5f0f\u505a\u4e86\u4fee\u6539\uff0c\u6211\u4eec\u53ef\u4ee5\u53c2\u8003\u4ee5\u4e0b\u4ee3\u7801\uff1a<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">java<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-java code-block-extension-codeShowNum\" lang=\"java\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-keyword\">try<\/span>(OpenAiClient client=OpenAiClient.builder()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">        .apiHost(<span class=\"hljs-string\">\"https:\/\/eus-chatgpt.openai.azure.com\"<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">        .apiKey(System.getProperty(<span class=\"hljs-string\">\"azure.token\"<\/span>))<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">        .provider(ProviderModel.azure)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">        .model(<span class=\"hljs-string\">\"text-davinci-002\"<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">        .version(<span class=\"hljs-string\">\"2022-12-01\"<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">        .build())<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">{<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">    client.createCompletion(configure).getChoices();<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">}<\/span>\n<\/code><\/pre>\n<p>\u4ee5\u4e0a\u5c31\u662f\u6211\u4eec\u4f7f\u7528 <code>openai-java-sdk<\/code> \u7684\u4e00\u4e9b\u57fa\u672c\u4f7f\u7528\u65b9\u5f0f\uff0c\u540e\u7eed\u6211\u4eec\u4f1a\u63d0\u4f9b\u66f4\u591a\u6587\u7ae0\u6765\u8be6\u7ec6\u8bb2\u89e3\u66f4\u591a\u7684\u5176\u4ed6\u6a21\u5f0f\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u6211\u4eec\u4e3b\u8981\u8bb2\u8ff0\u901a\u8fc7 openai-java-sdk \u4f9d\u8d56\u6574\u5408\u8bbf\u95ee OpenAi \u63d0\u4f9b\u7684\u529f\u80fd\u3002 OpenAI Java SDK \u4e3b\u8981 \u4e3a Java \u5f00\u53d1\u4eba\u5458\u63d0\u4f9b\u65b9\u4fbf\u6613\u7528\u7684 SDK \u6765\u4e0e OpenAI <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"SpringBoot \u6570\u636e\u7ba1\u7406\u5de5\u5177\u63a5\u5165 ChatGPT - \u5948\u65af\u79d1\u6280\u793e\u533a","rank_math_description":"\u672c\u6587\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 OpenAI Java SDK \u5c06 ChatGPT \u96c6\u6210\u5230 SpringBoot \u6570\u636e\u7ba1\u7406\u5de5\u5177\u4e2d\uff0c\u5b9e\u73b0 AI \u9a71\u52a8\u7684\u6570\u636e\u5e93\u7ba1\u7406\u529f\u80fd\uff0c\u5e76\u63d0\u4f9b\u4ee3\u7801\u793a\u4f8b\u548c\u8be6\u7ec6\u8bf4\u660e\u3002","rank_math_focus_keyword":"OpenAI Java SDK, ChatGPT, \u6570\u636e\u7ba1\u7406\u5de5\u5177, SpringBoot, AI","views":"9","footnotes":""},"categories":[3],"tags":[129,136,126,127,128],"collection":[],"class_list":["post-1225","post","type-post","status-publish","format-standard","hentry","category-fenlei2","tag-129","tag-136","tag-gpt","tag-ai","tag-128"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/posts\/1225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/comments?post=1225"}],"version-history":[{"count":0,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/posts\/1225\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/media?parent=1225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/categories?post=1225"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/tags?post=1225"},{"taxonomy":"collection","embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/collection?post=1225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}