


Cara menggunakan springboot+chatgpt+chatUI Pro untuk membangunkan alatan sembang pintar
1. Pengenalan teknikal
ChatGPT-Java ialah OpenAI Java SDK yang menyokong penggunaan di luar kotak. Pada masa ini, ia menyokong semua API di tapak web rasmi. Kami lebih suka menggunakan versi terkini model GPT-3.5-Turbo dan whisper-1.
2. Spring Boot ialah rangka kerja baharu yang disediakan oleh pasukan Pivotal Ia direka untuk memudahkan proses pembinaan dan pembangunan awal aplikasi Spring baharu. Rangka kerja ini menggunakan kaedah konfigurasi khusus dan tidak memerlukan pembangun untuk menentukan konfigurasi umum. Dengan cara ini, Spring Boot berusaha untuk menjadi peneraju dalam bidang pesat pembangunan aplikasi yang pesat.
3. ChatUI Pro ialah rangka kerja luar biasa yang boleh membina robot perbualan pintar berdasarkan komponen asas ChatUI dan digabungkan dengan amalan terbaik Alibaba dan Xiaomi. Ia mudah dan mudah digunakan, dan anda boleh membina robot perbualan melalui konfigurasi ringkas pada masa yang sama, ia berkuasa dan mudah untuk dikembangkan, dan boleh memenuhi pelbagai keperluan tersuai melalui antara muka yang kaya dan kad tersuai.
2. Pengenalan Projek
Projek ini menggunakan model GPT-3.5-Turb sebagai asas, dan melaksanakan robot kecerdasan buatan ringkas melalui springboot digabungkan dengan redis, chat-java dan chatUI Pro. Oleh kerana mengakses API openAI mengembalikan hasil secara perlahan, selepas bahagian hadapan dalam projek menghantar permintaan masalah ke bahagian belakang, bahagian belakang akan menjana UUID dan mengembalikannya ke bahagian hadapan Pada masa yang sama, bahagian belakang -end juga akan membuka semula thread untuk mengakses openAI Apabila openAI kembali Selepas keputusan, backend menggunakan UUID sebagai kunci, dan hasil yang dikembalikan oleh openAI disimpan dalam redis sebagai nilai. Bahagian hadapan akan meminta antara muka jawapan bahagian belakang setiap 5 saat berdasarkan UUID dalam hasil permintaan pertama dari bahagian belakang Antara muka jawapan akan bertanya sama ada redis mempunyai nilai berdasarkan UUID -antara muka jawapan akhir mengembalikan hasil, bahagian hadapan akan mengeluarkan hasilnya kepada Pengguna
3. Pembinaan projek
1. Buat projek springboot dan namakan projek mychatgpt.
2 Import projek pom dependencies
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.12</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.xyh</groupId> <artifactId>mychatgpt</artifactId> <version>0.0.1-SNAPSHOT</version> <name>mychatgpt</name> <description>Demo project for Spring Boot</description> <properties> <java.version>8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <exclusions> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> </exclusion> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-to-slf4j</artifactId> </exclusion> </exclusions> <scope>test</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> </dependency> <dependency> <groupId>com.theokanning.openai-gpt3-java</groupId> <artifactId>api</artifactId> <version>0.10.0</version> </dependency> <dependency> <groupId>com.theokanning.openai-gpt3-java</groupId> <artifactId>service</artifactId> <version>0.10.0</version> </dependency> <dependency> <groupId>com.theokanning.openai-gpt3-java</groupId> <artifactId>client</artifactId> <version>0.10.0</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.12</version> </dependency> <dependency> <groupId>com.unfbx</groupId> <artifactId>chatgpt-java</artifactId> <version>1.0.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.17</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.8</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.2</version> <exclusions> <exclusion> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.yulichang</groupId> <artifactId>mybatis-plus-join</artifactId> <version>1.4.2</version> </dependency> <!--集成随机生成数据包 --> <dependency> <groupId>com.apifan.common</groupId> <artifactId>common-random</artifactId> <version>1.0.19</version> </dependency> <!--集成随机生成数据包 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>
3 Tulis kelas alat pelaksanaan chatGPT
package com.xyh.mychatgpt.utils; import com.unfbx.chatgpt.OpenAiClient; import com.unfbx.chatgpt.entity.chat.ChatChoice; import com.unfbx.chatgpt.entity.chat.ChatCompletion; import com.unfbx.chatgpt.entity.chat.Message; import com.unfbx.chatgpt.entity.common.Choice; import com.unfbx.chatgpt.entity.completions.Completion; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.util.Arrays; import java.util.List; /** * @author xiangyuanhong * @description: TODO * @date 2023/3/21上午9:28 */ @Component public class ChatGPTUtils { @Value("${xyh.openai.key}") private String token; @Autowired private RedisUtils redisUtils; public void ask(String model,String question,String uuid){ StringBuffer result=new StringBuffer(); try { OpenAiClient openAiClient = new OpenAiClient(token, 3000, 300, 300, null); if("GPT-3.5-Turb".equals(model)){ // GPT-3.5-Turb模型 Message message=Message.builder().role(Message.Role.USER).content(question).build(); ChatCompletion chatCompletion = ChatCompletion.builder().messages(Arrays.asList(message)).build(); List<ChatChoice> resultList = openAiClient.chatCompletion(chatCompletion).getChoices(); for (int i = 0; i < resultList.size(); i++) { result.append(resultList.get(i).getMessage().getContent()); } }else{ //text-davinci-003/text-ada-003 Completion completion = Completion.builder() .prompt(question) .model(model) .maxTokens(2000) .temperature(0) .echo(false) .build(); Choice[] resultList = openAiClient.completions(completion).getChoices(); for (Choice choice : resultList) { result.append(choice.getText()); } } }catch (Exception e) { System.out.println(e.getMessage()); result.append("小爱还不太懂,回去一定努力学习补充知识"); } redisUtils.set(uuid,result.toString()); } }
4 untuk berinteraksi dengan bahagian hadapan
package com.xyh.mychatgpt.controller; import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.xyh.mychatgpt.utils.ChatGPTUtils; import com.xyh.mychatgpt.utils.R; import com.xyh.mychatgpt.utils.RedisUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; /** * @author xiangyuanhong * @description: TODO * @date 2023/2/28下午4:57 */ @RestController public class IndexController { @Autowired private RedisUtils redisUtils; @Autowired private ChatGPTUtils chatGPTUtils; @GetMapping("/ask") public R ask(String question,HttpServletRequest request) { String uuid=IdUtil.simpleUUID(); if (StrUtil.isBlank(question)) { question = "今天天气怎么样?"; } String finalQuestion = question; ThreadUtil.execAsync(()->{ chatGPTUtils.ask("GPT-3.5-Turb", finalQuestion,uuid); }); return R.ok().put("data",uuid); } @GetMapping("/answer") public R answer(String uuid){ String result=redisUtils.get(uuid); return R.ok().put("data",result); } }
5. Buat halaman index.html dalam direktori templat projek dan memperkenalkan fail berkaitan chatUI
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta name="renderer" content="webkit" /> <meta name="force-rendering" content="webkit" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0, viewport-fit=cover" /> <title>滴答小爱</title> <link rel="stylesheet" href="//g.alicdn.com/chatui/sdk-v2/0.2.4/sdk.css" rel="external nofollow" > </head> <body> <div id="root"></div> <script src="//g.alicdn.com/chatui/sdk-v2/0.2.4/sdk.js"></script> <script src="//g.alicdn.com/chatui/extensions/0.0.7/isv-parser.js"></script> <script src="js/setup.js"></script> <script src="js/jquery-3.6.3.min.js"></script> <script src="//g.alicdn.com/chatui/icons/0.3.0/index.js" async></script> </body> </html>
6 .js untuk melaksanakan chatUI Pro berkomunikasi dengan bahagian belakang.
var bot = new ChatSDK({ config: { // navbar: { // title: '滴答小爱' // }, robot: { avatar: 'images/chat.png' }, // 用户头像 user: { avatar: 'images/user.png', }, // 首屏消息 messages: [ { type: 'text', content: { text: '您好,小爱为您服务,请问有什么可以帮您的?' } } ], // 快捷短语 // quickReplies: [ // { name: '健康码颜色',isHighlight:true }, // { name: '入浙通行申报' }, // { name: '健康码是否可截图使用' }, // { name: '健康通行码适用范围' }, // ], // 输入框占位符 placeholder: '输入任何您想询问的问题', }, requests: { send: function (msg) { if (msg.type === 'text') { return { url: '/ask', data: { question: msg.content.text } }; } } }, handlers: { /** * * 解析请求返回的数据 * @param {object} res - 请求返回的数据 * @param {object} requestType - 请求类型 * @return {array} */ parseResponse: function (res, requestType) { // 根据 requestType 处理数据 if (requestType === 'send' && res.code==0) { // 用 isv 消息解析器处理数据 $.ajaxSettings.async=false; var answer=""; var isOK=false; while(!isOK){ $.get("/answer",{uuid:res.data},function(result){ console.log(result.data) if(null != result.data){ isOK=true; answer=result.data; } },"json"); if(!isOK){ sleep(5000); } } $.ajaxSettings.async=true; return [{"_id":res.data,type:"text",content:{text:answer},position:"left"}]; } }, }, }); function sleep(n) { //n表示的毫秒数 var start = new Date().getTime(); while (true) { if (new Date().getTime() - start > n) { break; } } } bot.run();
Setelah projek selesai, mulakan projek Spring Boot dan akses http://ip:port. Kesan akhir projek: http://hyrun.vip/
4 Paparan projek
Atas ialah kandungan terperinci Cara menggunakan springboot+chatgpt+chatUI Pro untuk membangunkan alatan sembang pintar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



DALL-E 3 telah diperkenalkan secara rasmi pada September 2023 sebagai model yang jauh lebih baik daripada pendahulunya. Ia dianggap sebagai salah satu penjana imej AI terbaik setakat ini, mampu mencipta imej dengan perincian yang rumit. Walau bagaimanapun, semasa pelancaran, ia adalah tidak termasuk

Gabungan sempurna ChatGPT dan Python: Mencipta Perkhidmatan Pelanggan Pintar Chatbot Pengenalan: Dalam era maklumat hari ini, sistem perkhidmatan pelanggan pintar telah menjadi alat komunikasi yang penting antara perusahaan dan pelanggan. Untuk memberikan pengalaman perkhidmatan pelanggan yang lebih baik, banyak syarikat telah mula beralih kepada chatbots untuk menyelesaikan tugas seperti perundingan pelanggan dan menjawab soalan. Dalam artikel ini, kami akan memperkenalkan cara menggunakan bahasa ChatGPT dan Python model OpenAI yang berkuasa untuk mencipta bot sembang perkhidmatan pelanggan yang pintar untuk meningkatkan

Langkah pemasangan: 1. Muat turun perisian ChatGTP dari laman web rasmi ChatGTP atau kedai mudah alih 2. Selepas membukanya, dalam antara muka tetapan, pilih bahasa sebagai bahasa Cina 3. Dalam antara muka permainan, pilih permainan mesin manusia dan tetapkan Spektrum bahasa Cina; 4 Selepas memulakan, masukkan arahan dalam tetingkap sembang untuk berinteraksi dengan perisian.

SpringBoot dan SpringMVC adalah kedua-dua rangka kerja yang biasa digunakan dalam pembangunan Java, tetapi terdapat beberapa perbezaan yang jelas antara mereka. Artikel ini akan meneroka ciri dan penggunaan kedua-dua rangka kerja ini dan membandingkan perbezaannya. Mula-mula, mari belajar tentang SpringBoot. SpringBoot telah dibangunkan oleh pasukan Pivotal untuk memudahkan penciptaan dan penggunaan aplikasi berdasarkan rangka kerja Spring. Ia menyediakan cara yang pantas dan ringan untuk membina bersendirian, boleh dilaksanakan

Dalam artikel ini, kami akan memperkenalkan cara membangunkan chatbot pintar menggunakan ChatGPT dan Java, dan menyediakan beberapa contoh kod khusus. ChatGPT ialah versi terkini Generative Pre-training Transformer yang dibangunkan oleh OpenAI, teknologi kecerdasan buatan berasaskan rangkaian saraf yang boleh memahami bahasa semula jadi dan menjana teks seperti manusia. Menggunakan ChatGPT kami boleh membuat sembang adaptif dengan mudah

Cara menggunakan ChatGPTPHP untuk membina robot perkhidmatan pelanggan yang pintar Pengenalan: Dengan perkembangan teknologi kecerdasan buatan, robot semakin digunakan dalam bidang perkhidmatan pelanggan. Menggunakan ChatGPTPHP untuk membina robot perkhidmatan pelanggan yang pintar boleh membantu syarikat menyediakan perkhidmatan pelanggan yang lebih cekap dan diperibadikan. Artikel ini akan memperkenalkan cara menggunakan ChatGPTPHP untuk membina robot perkhidmatan pelanggan yang pintar dan menyediakan contoh kod khusus. 1. Pasang ChatGPTPHP dan gunakan ChatGPTPHP untuk membina robot perkhidmatan pelanggan yang pintar.

chatgpt boleh digunakan di China, tetapi tidak boleh didaftarkan, begitu juga di Hong Kong dan Macao Jika pengguna ingin mendaftar, mereka boleh menggunakan nombor telefon mudah alih asing untuk mendaftar. Perhatikan bahawa semasa proses pendaftaran, persekitaran rangkaian mesti ditukar IP asing.

Cara menggunakan ChatGPT dan Python untuk melaksanakan fungsi pengecaman niat pengguna Pengenalan: Dalam era digital hari ini, teknologi kecerdasan buatan secara beransur-ansur menjadi bahagian yang amat diperlukan dalam pelbagai bidang. Antaranya, pembangunan teknologi pemprosesan bahasa semula jadi (Natural Language Processing, NLP) membolehkan mesin memahami dan memproses bahasa manusia. ChatGPT (Chat-GeneratingPtrainedTransformer) ialah sejenis
