Kaynağa Gözat

创建core-ai模块,用于提供AI相关服务接口

Signed-off-by: luoshi <luoshi@qmth.com.cn>
luoshi 1 yıl önce
ebeveyn
işleme
eb42e35293

+ 42 - 0
core-ai/pom.xml

@@ -0,0 +1,42 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <artifactId>qmth-boot</artifactId>
+        <groupId>com.qmth.boot</groupId>
+        <version>1.0.4</version>
+    </parent>
+    <artifactId>core-ai</artifactId>
+    <name>core-ai</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.qmth.boot</groupId>
+            <artifactId>tools-common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.qmth.boot</groupId>
+            <artifactId>core-solar</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-autoconfigure</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-validation</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+</project>

+ 27 - 0
core-ai/src/main/java/com/qmth/boot/core/ai/api/LlmApiClient.java

@@ -0,0 +1,27 @@
+package com.qmth.boot.core.ai.api;
+
+import com.qmth.boot.core.ai.config.LlmApiConfiguration;
+import com.qmth.boot.core.ai.model.AiConstants;
+import com.qmth.boot.core.retrofit.annotatioin.RetrofitClient;
+import com.qmth.boot.core.retrofit.utils.SignatureInfo;
+import retrofit2.http.Body;
+import retrofit2.http.POST;
+import retrofit2.http.Tag;
+
+/**
+ * 大模型相关应用服务接口
+ */
+@RetrofitClient(configuration = LlmApiConfiguration.class)
+public interface LlmApiClient {
+
+    /**
+     * 自动命题服务
+     *
+     * @param signatureInfo
+     * @param prompt
+     * @return
+     */
+    @POST(AiConstants.LLM_AGQ_PATH)
+    String autoGenerateQuestion(@Tag SignatureInfo signatureInfo, @Body String prompt);
+
+}

+ 12 - 0
core-ai/src/main/java/com/qmth/boot/core/ai/config/AiAutoConfiguration.java

@@ -0,0 +1,12 @@
+package com.qmth.boot.core.ai.config;
+
+import com.qmth.boot.core.retrofit.annotatioin.RetrofitScan;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ComponentScan("com.qmth.boot.core.ai")
+@RetrofitScan("com.qmth.boot.core.ai.api")
+public class AiAutoConfiguration {
+
+}

+ 26 - 0
core-ai/src/main/java/com/qmth/boot/core/ai/config/LlmApiConfiguration.java

@@ -0,0 +1,26 @@
+package com.qmth.boot.core.ai.config;
+
+import com.qmth.boot.core.retrofit.interfaces.CustomizeRetrofitConfiguration;
+import com.qmth.boot.core.retrofit.interfaces.SignatureProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class LlmApiConfiguration implements CustomizeRetrofitConfiguration {
+
+    private static final Logger log = LoggerFactory.getLogger(LlmApiConfiguration.class);
+
+    private LlmProperties llmProperties;
+
+    public LlmApiConfiguration(LlmProperties llmProperties) {
+        this.llmProperties = llmProperties;
+        log.info("LLM api configuration inited, server=" + llmProperties.getServer());
+    }
+
+    public String getBaseUrl() {
+        return llmProperties.getServer();
+    }
+
+    public SignatureProvider getSignature() {
+        return null;
+    }
+}

+ 28 - 0
core-ai/src/main/java/com/qmth/boot/core/ai/config/LlmProperties.java

@@ -0,0 +1,28 @@
+package com.qmth.boot.core.ai.config;
+
+import com.qmth.boot.core.constant.CoreConstant;
+import com.qmth.boot.core.solar.model.SolarConstants;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+import javax.validation.constraints.NotNull;
+
+@Component
+@ConfigurationProperties(prefix = CoreConstant.CONFIG_PREFIX + ".llm")
+public class LlmProperties {
+
+    /**
+     * 云服务模式下,默认直接访问solar地址
+     */
+    @NotNull
+    private String server = SolarConstants.DEFAULT_SERVER;
+
+    public String getServer() {
+        return server;
+    }
+
+    public void setServer(String server) {
+        this.server = server;
+    }
+
+}

+ 6 - 0
core-ai/src/main/java/com/qmth/boot/core/ai/model/AiConstants.java

@@ -0,0 +1,6 @@
+package com.qmth.boot.core.ai.model;
+
+public interface AiConstants {
+
+    String LLM_AGQ_PATH = "/api/ai/llm/agq";
+}

+ 2 - 0
core-ai/src/main/resources/META-INF/spring.factories

@@ -0,0 +1,2 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+  com.qmth.boot.core.ai.config.AiAutoConfiguration

+ 1 - 1
core-cache/pom.xml

@@ -9,7 +9,7 @@
         <version>1.0.4</version>
     </parent>
     <artifactId>core-cache</artifactId>
-    <name>core-uid</name>
+    <name>core-cache</name>
 
     <dependencies>
         <dependency>

+ 6 - 0
pom.xml

@@ -32,6 +32,7 @@
         <module>core-solar</module>
         <module>core-retrofit</module>
         <module>core-sms</module>
+        <module>core-ai</module>
     </modules>
 
     <name>qmth-boot</name>
@@ -150,6 +151,11 @@
                 <artifactId>core-sms</artifactId>
                 <version>${project.version}</version>
             </dependency>
+            <dependency>
+                <groupId>com.qmth.boot</groupId>
+                <artifactId>core-ai</artifactId>
+                <version>${project.version}</version>
+            </dependency>
             <dependency>
                 <groupId>com.qmth.boot</groupId>
                 <artifactId>data-redis</artifactId>