มันเป็นห้องสมุด "ไม่เป็นทางการ" หรือ "ดูแลชุมชน" หากมีข้อบกพร่องเพื่อน ๆ ยินดีที่จะชี้ให้เห็นและเรียนรู้จากกันและกัน
การเปิดตัวและพิมพ์ซ้ำต้นฉบับระบุแหล่งที่มา!
ที่อยู่เอกสาร: https://chatgpt-java.unfbx.com/
Spark Mockup Java SDK: https://github.com/grt1228/sparkdesk-java
เป็นเอกสารภาษาอังกฤษ -> เอกสารภาษาอังกฤษ
| ร่วมกันหารือเกี่ยวกับ chatgpt-java, SDK ปัญหาการให้คำปรึกษาโครงการแลกเปลี่ยนการพัฒนาผลิตภัณฑ์การพัฒนาผลิตภัณฑ์ | ความล้มเหลวของกลุ่มติดตามการกู้คืนบัญชีอย่างเป็นทางการ: chatgpt-java |
|---|---|
![]() |
ไคลเอนต์ Java ของ Chatgpt Openai Opeing API Java SDK ซึ่งสามารถเชื่อมต่อกับโครงการได้อย่างรวดเร็ว รองรับอินเทอร์เฟซ OpenAI อย่างเป็นทางการทั้งหมด และรองรับการคำนวณโทเค็น เอกสารอ้างอิง: tokens_readme.md
| ผู้ช่วย | Dall-e-3 | Finetunejob | TTS | chatcompletionwithpicture |
|---|---|---|---|---|
| ฐานความรู้ที่กำหนดเองผู้ช่วย AI | AI สร้างรูปภาพ | งานปรับแต่ง | ส่งข้อความถึงเสียง | chatcompletion พร้อมรูปภาพเพิ่มเติม |
| tiktoken | แชท | ความสำเร็จ | ภาพ | คำพูดถึงข้อความ | การสอบถามยอดคงเหลือ |
|---|---|---|---|---|---|
| การคำนวณโทเค็น | GPT-3.5, 4.0 รูปแบบการสนทนา | บทสนทนา GPT-3.0 | รูปแบบภาพ | Voice to text, การแปลด้วยเสียง | การสอบถามยอดคงเหลือ |
| การฝัง | ไฟล์ | การกลั่นกรอง | ปรับแต่ง | แบบจำลอง |
|---|---|---|---|---|
| ฝัง | รูปแบบการฝึกอบรมที่กำหนดเอง | การตรวจสอบข้อความการระบุคำที่ละเอียดอ่อน | การปรับที่ดี | การค้นหาแบบจำลองที่เกี่ยวข้อง |
รองรับการสตรีมเอาต์พุต:
| การสตรีมการใช้วิธีการใช้งานเอาต์พุต | โปรแกรมมินิ | Android | iOS | H5 |
|---|---|---|---|---|
| SSE Reference: OpenAisSeeVentSourceListener | ไม่รองรับ | สนับสนุน | สนับสนุน | สนับสนุน |
| WebSocket Reference: OpenAiWebSocketEventSourceListener | สนับสนุน | สนับสนุน | สนับสนุน | สนับสนุน |
จากโครงการสาธิตที่พัฒนาโดย SDK นี้สปริงบูต ถูก รวมเข้าด้วยกันเพื่อใช้โหมดการสนทนา CAHTGPT
โครงการนี้รองรับ เอาต์พุตเริ่มต้น และ การสตรีมเอาต์พุต การอ้างอิงกรณีทดสอบ SDK ที่สมบูรณ์:
| กรณีทดสอบ SDK | กรณีทดสอบการคำนวณโทเค็น | เคสโทรฟังก์ชั่นการเรียกใช้ฟังก์ชั่นที่สมบูรณ์ |
|---|---|---|
| Openaiclienttest และ OpenAistreamClienttest | การอ้างอิงการคำนวณโทเค็น: tiktokenstest | openaiclientfunctiontest |
<dependency>
<groupId>com.unfbx</groupId>
<artifactId>chatgpt-java</artifactId>
<version>1.0.14-beta1</version>
</dependency>
การอ้างอิงตัวอย่าง SDK เพิ่มเติม: openaistreamclienttest
public class Test {
public static void main(String[] args) {
OpenAiStreamClient client = OpenAiStreamClient.builder()
.apiKey(Arrays.asList("sk-********","sk-********"))
//自定义key的获取策略:默认KeyRandomStrategy
//.keyStrategy(new KeyRandomStrategy())
.keyStrategy(new FirstKeyStrategy())
//自己做了代理就传代理地址,没有可不不传
// .apiHost("https://自己代理的服务器地址/")
.build();
//聊天模型:gpt-3.5
ConsoleEventSourceListener eventSourceListener = new ConsoleEventSourceListener();
Message message = Message.builder().role(Message.Role.USER).content("你好啊我的伙伴!").build();
ChatCompletion chatCompletion = ChatCompletion.builder().messages(Arrays.asList(message)).build();
client.streamChatCompletion(chatCompletion, eventSourceListener);
CountDownLatch countDownLatch = new CountDownLatch(1);
try {
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class Test {
public static void main(String[] args) {
//国内访问需要做代理,国外服务器不需要
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 7890));
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(new OpenAILogger());
//!!!!千万别再生产或者测试环境打开BODY级别日志!!!!
//!!!生产或者测试环境建议设置为这三种级别:NONE,BASIC,HEADERS,!!!
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS);
OkHttpClient okHttpClient = new OkHttpClient
.Builder()
.proxy(proxy)//自定义代理
.addInterceptor(httpLoggingInterceptor)//自定义日志
.connectTimeout(30, TimeUnit.SECONDS)//自定义超时时间
.writeTimeout(30, TimeUnit.SECONDS)//自定义超时时间
.readTimeout(30, TimeUnit.SECONDS)//自定义超时时间
.build();
OpenAiStreamClient client = OpenAiStreamClient.builder()
.apiKey(Arrays.asList("sk-********","sk-********"))
//自定义key的获取策略:默认KeyRandomStrategy
//.keyStrategy(new KeyRandomStrategy())
.keyStrategy(new FirstKeyStrategy())
.okHttpClient(okHttpClient)
//自己做了代理就传代理地址,没有可不不传
// .apiHost("https://自己代理的服务器地址/")
.build();
}
}
บันทึกเอาต์พุต (ข้อความเป็นเอาต์พุตอย่างต่อเนื่อง):
23:03:59.158 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI建立sse连接...
23:03:59.160 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:{"id": "cmpl-6pIHnOOJiiUEVMesXwxzzcSQFoZHj", "object": "text_completion", "created": 1677683039, "choices": [{"text": "n", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}
23:03:59.172 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:{"id": "cmpl-6pIHnOOJiiUEVMesXwxzzcSQFoZHj", "object": "text_completion", "created": 1677683039, "choices": [{"text": "n", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}
23:03:59.251 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:{"id": "cmpl-6pIHnOOJiiUEVMesXwxzzcSQFoZHj", "object": "text_completion", "created": 1677683039, "choices": [{"text": "u5fc3", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}
23:03:59.313 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:{"id": "cmpl-6pIHnOOJiiUEVMesXwxzzcSQFoZHj", "object": "text_completion", "created": 1677683039, "choices": [{"text": "u60c5", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}
23:03:59.380 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:{"id": "cmpl-6pIHnOOJiiUEVMesXwxzzcSQFoZHj", "object": "text_completion", "created": 1677683039, "choices": [{"text": "u8212", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}
23:03:59.439 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:{"id": "cmpl-6pIHnOOJiiUEVMesXwxzzcSQFoZHj", "object": "text_completion", "created": 1677683039, "choices": [{"text": "u7545", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}
23:03:59.532 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:{"id": "cmpl-6pIHnOOJiiUEVMesXwxzzcSQFoZHj", "object": "text_completion", "created": 1677683039, "choices": [{"text": "uff0c", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}
23:03:59.579 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:{"id": "cmpl-6pIHnOOJiiUEVMesXwxzzcSQFoZHj", "object": "text_completion", "created": 1677683039, "choices": [{"text": "u5fc3", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}
23:03:59.641 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:{"id": "cmpl-6pIHnOOJiiUEVMesXwxzzcSQFoZHj", "object": "text_completion", "created": 1677683039, "choices": [{"text": "u65f7", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}
23:03:59.673 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:{"id": "cmpl-6pIHnOOJiiUEVMesXwxzzcSQFoZHj", "object": "text_completion", "created": 1677683039, "choices": [{"text": "u795e", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}
23:03:59.751 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:{"id": "cmpl-6pIHnOOJiiUEVMesXwxzzcSQFoZHj", "object": "text_completion", "created": 1677683039, "choices": [{"text": "u6021", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}
23:03:59.782 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:{"id": "cmpl-6pIHnOOJiiUEVMesXwxzzcSQFoZHj", "object": "text_completion", "created": 1677683039, "choices": [{"text": "u3002", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}
23:03:59.815 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:[DONE]
23:03:59.815 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据结束了
23:03:59.815 [省略无效信息] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI关闭sse连接...
การอ้างอิงตัวอย่าง SDK เพิ่มเติม: openaiclienttest
public class Test {
public static void main(String[] args) {
OpenAiClient openAiClient = OpenAiClient.builder()
.apiKey(Arrays.asList("sk-********","sk-********"))
//自定义key的获取策略:默认KeyRandomStrategy
//.keyStrategy(new KeyRandomStrategy())
.keyStrategy(new FirstKeyStrategy())
//自己做了代理就传代理地址,没有可不不传
// .apiHost("https://自己代理的服务器地址/")
.build();
//聊天模型:gpt-3.5
Message message = Message.builder().role(Message.Role.USER).content("你好啊我的伙伴!").build();
ChatCompletion chatCompletion = ChatCompletion.builder().messages(Arrays.asList(message)).build();
ChatCompletionResponse chatCompletionResponse = openAiClient.chatCompletion(chatCompletion);
chatCompletionResponse.getChoices().forEach(e -> {
System.out.println(e.getMessage());
});
}
}
public class Test {
public static void main(String[] args) {
//国内访问需要做代理,国外服务器不需要
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 7890));
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(new OpenAILogger());
//!!!!千万别再生产或者测试环境打开BODY级别日志!!!!
//!!!生产或者测试环境建议设置为这三种级别:NONE,BASIC,HEADERS,!!!
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS);
OkHttpClient okHttpClient = new OkHttpClient
.Builder()
.proxy(proxy)//自定义代理
.addInterceptor(httpLoggingInterceptor)//自定义日志输出
.addInterceptor(new OpenAiResponseInterceptor())//自定义返回值拦截
.connectTimeout(10, TimeUnit.SECONDS)//自定义超时时间
.writeTimeout(30, TimeUnit.SECONDS)//自定义超时时间
.readTimeout(30, TimeUnit.SECONDS)//自定义超时时间
.build();
//构建客户端
OpenAiClient openAiClient = OpenAiClient.builder()
.apiKey(Arrays.asList("sk-********","sk-********"))
//自定义key的获取策略:默认KeyRandomStrategy
//.keyStrategy(new KeyRandomStrategy())
.keyStrategy(new FirstKeyStrategy())
.okHttpClient(okHttpClient)
//自己做了代理就传代理地址,没有可不不传
// .apiHost("https://自己代理的服务器地址/")
.build();
//聊天模型:gpt-3.5
Message message = Message.builder().role(Message.Role.USER).content("你好啊我的伙伴!").build();
ChatCompletion chatCompletion = ChatCompletion.builder().messages(Arrays.asList(message)).build();
ChatCompletionResponse chatCompletionResponse = openAiClient.chatCompletion(chatCompletion);
chatCompletionResponse.getChoices().forEach(e -> {
System.out.println(e.getMessage());
});
}
}
ดาวน์โหลดซอร์สโค้ดเพื่อแพ็คเกจ
| ถาม | อัน |
|---|---|
| จะบรรลุบทสนทนาต่อเนื่องได้อย่างไร? | ปัญหา: #8 |
| จะใช้การสตรีมเอาต์พุตได้อย่างไร? | อัพเกรดเวอร์ชัน 1.0.2, ซอร์สโค้ดอ้างอิง: OpenAistreamClientTest |
| วิธีการรวม Springboot เพื่อใช้งานอินเตอร์เฟสการสตรีมเอาท์พุต API | อ้างถึงโครงการอื่น: chatgpt-steam-output |
| GPT-3.5-turbo เวอร์ชันล่าสุดรองรับหรือไม่? | อัพเกรด 1.0.3 รองรับ chatcompletion, กรณีทดสอบอ้างอิง: openaistreamclienttest และ openaistreamclienttest |
| รองรับการแปลภาษาและภาษาเวอร์ชันล่าสุดหรือไม่? | อัพเกรด 1.0.3 รองรับกรณีทดสอบอ้างอิงกระซิบแล้ว: OpenAistreamClientTest และ OpenAistreamClientTest |
คุณสามารถตรวจสอบโซลูชันนี้เมื่อเยี่ยมชมในประเทศ: noobnooc/noobnooc#9
ขึ้นอยู่กับคอลเลกชันกรณีการพัฒนา SDK นี้ : CHATGPT-JAVA SDK CASE COLLECTION
ยืนอยู่บนไหล่ของยักษ์:
หากโครงการมีประโยชน์สำหรับคุณคุณสามารถเลือกที่จะเชิญฉันให้ดื่มน้ำนมหนึ่งถ้วย


โปรโตคอลโอเพ่นซอร์ส: ใบอนุญาต