Inhaltsverzeichnis
1. Technische Einführung
2. Projekteinführung
3 Erstellen Sie ein Springboot-Projekt und nennen Sie das Projekt mychatgpt.
Heim Java javaLernprogramm So verwenden Sie springboot+chatgpt+chatUI Pro, um intelligente Chat-Tools zu entwickeln

So verwenden Sie springboot+chatgpt+chatUI Pro, um intelligente Chat-Tools zu entwickeln

May 16, 2023 pm 09:04 PM
chatgpt springboot

1. Technische Einführung

ChatGPT-Java ist ein OpenAI Java SDK, das die sofortige Verwendung unterstützt. Derzeit werden alle APIs auf der offiziellen Website unterstützt. Wir bevorzugen die Verwendung der neuesten Versionen der Modelle GPT-3.5-Turbo und Whisper-1.

2. Spring Boot ist ein neues Framework, das vom Pivotal-Team bereitgestellt wird. Es soll den anfänglichen Konstruktions- und Entwicklungsprozess neuer Spring-Anwendungen vereinfachen. Dieses Framework verwendet eine spezifische Konfigurationsmethode und erfordert nicht, dass Entwickler allgemeine Konfigurationen definieren. Auf diese Weise strebt Spring Boot danach, führend im boomenden Bereich der schnellen Anwendungsentwicklung zu werden.

3. ChatUI Pro ist ein sofort einsatzbereites Framework, das schnell einen intelligenten Gesprächsroboter aufbauen kann, der auf den Grundkomponenten von ChatUI basiert und mit den Best Practices von Alibaba und Xiaomi kombiniert wird. Es ist einfach und benutzerfreundlich, und Sie können durch einfache Konfiguration einen Konversationsroboter erstellen. Gleichzeitig ist es leistungsstark und leicht zu erweitern und kann durch umfangreiche Schnittstellen und benutzerdefinierte Karten verschiedene individuelle Anforderungen erfüllen.

2. Projekteinführung

Dieses Projekt verwendet das GPT-3.5-Turb-Modell als Basis und verwendet Springboot in Kombination mit Redis, Chat-Java und ChatUI Pro, um einen einfachen Roboter mit künstlicher Intelligenz zu implementieren. Da der Zugriff auf die API von openAI langsam Ergebnisse liefert, generiert das Back-End eine UUID und gibt sie an das Front-End zurück, nachdem das Front-End im Projekt die Problemanforderung an das Back-End gesendet hat -end öffnet auch einen Thread erneut, um auf openAI zuzugreifen. Nach dem Ergebnis verwendet das Backend die UUID als Schlüssel und das von openAI zurückgegebene Ergebnis wird in Redis als Wert gespeichert. Das Front-End fragt die Back-End-Antwortschnittstelle alle 5 Sekunden basierend auf der UUID im Ergebnis der ersten Anfrage vom Back-End ab. Die Antwortschnittstelle fragt basierend auf der UUID ab, ob Redis einen Wert hat -End-Antwortschnittstelle gibt das Ergebnis zurück, das Frontend gibt das Ergebnis an den Benutzer aus

3 Erstellen Sie ein Springboot-Projekt und nennen Sie das Projekt mychatgpt.

So verwenden Sie springboot+chatgpt+chatUI Pro, um intelligente Chat-Tools zu entwickeln2. Importieren Sie die Abhängigkeiten des Projekts pom

<?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>
Nach dem Login kopieren

3. Entwickeln Sie die Projekt-Controller-Klasse, um mit der Front-End-Seite zu interagieren Entwicklung, in den Projektvorlagen Erstellen Sie eine index.html-Seite im Verzeichnis und führen Sie chatUI Pro-bezogene Dateien ein

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());
    }
}
Nach dem Login kopieren

6. Erstellen Sie setup.js, um die Kommunikation und den Austausch zwischen chatUI Pro und dem Backend zu implementieren.

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);
    }
}
Nach dem Login kopieren

Sobald das Projekt abgeschlossen ist, starten Sie das Spring Boot-Projekt und greifen Sie auf http://ip:port zu. Der endgültige Effekt des Projekts: http://hyrun.vip/

4. Projektanzeige

Das obige ist der detaillierte Inhalt vonSo verwenden Sie springboot+chatgpt+chatUI Pro, um intelligente Chat-Tools zu entwickeln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Mit ChatGPT können kostenlose Benutzer jetzt Bilder mithilfe von DALL-E 3 mit einem Tageslimit generieren Mit ChatGPT können kostenlose Benutzer jetzt Bilder mithilfe von DALL-E 3 mit einem Tageslimit generieren Aug 09, 2024 pm 09:37 PM

DALL-E 3 wurde im September 2023 offiziell als deutlich verbessertes Modell gegenüber seinem Vorgänger eingeführt. Er gilt als einer der bisher besten KI-Bildgeneratoren und ist in der Lage, Bilder mit komplexen Details zu erstellen. Zum Start war es jedoch exklusiv

Die perfekte Kombination aus ChatGPT und Python: Erstellen eines intelligenten Kundenservice-Chatbots Die perfekte Kombination aus ChatGPT und Python: Erstellen eines intelligenten Kundenservice-Chatbots Oct 27, 2023 pm 06:00 PM

Die perfekte Kombination aus ChatGPT und Python: Erstellen eines intelligenten Kundenservice-Chatbots Einführung: Im heutigen Informationszeitalter sind intelligente Kundenservicesysteme zu einem wichtigen Kommunikationsinstrument zwischen Unternehmen und Kunden geworden. Um den Kundenservice zu verbessern, greifen viele Unternehmen auf Chatbots zurück, um Aufgaben wie Kundenberatung und Beantwortung von Fragen zu erledigen. In diesem Artikel stellen wir vor, wie Sie mithilfe des leistungsstarken ChatGPT-Modells und der Python-Sprache von OpenAI einen intelligenten Kundenservice-Chatbot erstellen und verbessern können

So installieren Sie ChatGPT auf einem Mobiltelefon So installieren Sie ChatGPT auf einem Mobiltelefon Mar 05, 2024 pm 02:31 PM

Installationsschritte: 1. Laden Sie die ChatGTP-Software von der offiziellen ChatGTP-Website oder dem mobilen Store herunter. 2. Wählen Sie nach dem Öffnen in der Einstellungsoberfläche die Sprache aus. 3. Wählen Sie in der Spieloberfläche das Mensch-Maschine-Spiel aus 4. Geben Sie nach dem Start Befehle in das Chatfenster ein, um mit der Software zu interagieren.

Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC Dec 29, 2023 am 11:02 AM

SpringBoot und SpringMVC sind beide häufig verwendete Frameworks in der Java-Entwicklung, es gibt jedoch einige offensichtliche Unterschiede zwischen ihnen. In diesem Artikel werden die Funktionen und Verwendungsmöglichkeiten dieser beiden Frameworks untersucht und ihre Unterschiede verglichen. Lassen Sie uns zunächst etwas über SpringBoot lernen. SpringBoot wurde vom Pivotal-Team entwickelt, um die Erstellung und Bereitstellung von Anwendungen auf Basis des Spring-Frameworks zu vereinfachen. Es bietet eine schnelle und einfache Möglichkeit, eigenständige, ausführbare Dateien zu erstellen

So entwickeln Sie einen intelligenten Chatbot mit ChatGPT und Java So entwickeln Sie einen intelligenten Chatbot mit ChatGPT und Java Oct 28, 2023 am 08:54 AM

In diesem Artikel stellen wir vor, wie man intelligente Chatbots mit ChatGPT und Java entwickelt, und stellen einige spezifische Codebeispiele bereit. ChatGPT ist die neueste Version des von OpenAI entwickelten Generative Pre-Training Transformer, einer auf neuronalen Netzwerken basierenden Technologie für künstliche Intelligenz, die natürliche Sprache verstehen und menschenähnlichen Text generieren kann. Mit ChatGPT können wir ganz einfach adaptive Chats erstellen

So erstellen Sie einen intelligenten Kundendienstroboter mit ChatGPT PHP So erstellen Sie einen intelligenten Kundendienstroboter mit ChatGPT PHP Oct 28, 2023 am 09:34 AM

So bauen Sie mit ChatGPTPHP einen intelligenten Kundendienstroboter. Einführung: Mit der Entwicklung der Technologie der künstlichen Intelligenz werden Roboter zunehmend im Bereich Kundendienst eingesetzt. Der Einsatz von ChatGPTPHP zum Aufbau eines intelligenten Kundendienstroboters kann Unternehmen dabei helfen, effizientere und personalisiertere Kundendienste anzubieten. In diesem Artikel wird erläutert, wie Sie mit ChatGPTPHP einen intelligenten Kundendienstroboter erstellen, und es werden spezifische Codebeispiele bereitgestellt. 1. Installieren Sie ChatGPTPHP und nutzen Sie ChatGPTPHP, um einen intelligenten Kundendienstroboter aufzubauen.

Kann Chatgpt in China verwendet werden? Kann Chatgpt in China verwendet werden? Mar 05, 2024 pm 03:05 PM

chatgpt kann in China verwendet werden, kann jedoch nicht registriert werden. Wenn Benutzer sich registrieren möchten, können sie zur Registrierung eine ausländische Mobiltelefonnummer verwenden. Beachten Sie, dass während des Registrierungsprozesses auf die Netzwerkumgebung umgestellt werden muss eine fremde IP.

So verwenden Sie ChatGPT und Python, um die Funktion zur Erkennung von Benutzerabsichten zu implementieren So verwenden Sie ChatGPT und Python, um die Funktion zur Erkennung von Benutzerabsichten zu implementieren Oct 27, 2023 am 09:04 AM

So verwenden Sie ChatGPT und Python, um die Funktion zur Erkennung von Benutzerabsichten zu implementieren. Einführung: Im heutigen digitalen Zeitalter ist die Technologie der künstlichen Intelligenz in verschiedenen Bereichen nach und nach zu einem unverzichtbaren Bestandteil geworden. Unter anderem ermöglicht die Entwicklung der Technologie zur Verarbeitung natürlicher Sprache (Natural Language Processing, NLP), dass Maschinen menschliche Sprache verstehen und verarbeiten können. ChatGPT (Chat-GeneratingPretrainedTransformer) ist eine Art von

See all articles