From ecc403e16a121a35b3794dbbe400f760a7e9c334 Mon Sep 17 00:00:00 2001 From: Henry He Date: Tue, 4 Jul 2023 10:03:17 +0800 Subject: [PATCH] feat: stop chars --- .inscode | 2 +- .../askdata/controller/BiVenusController.java | 2 ++ .../enthusa/askdata/ext/inscode/GptClient.java | 1 + .../enthusa/askdata/ext/inscode/GptRequest.java | 16 ++++++++++++++++ src/main/resources/logback-dev.xml | 2 +- .../org/enthusa/askdata/gpt/ChatGptTest.java | 2 ++ 6 files changed, 23 insertions(+), 2 deletions(-) diff --git a/.inscode b/.inscode index 30ba060..5fbbf14 100644 --- a/.inscode +++ b/.inscode @@ -1 +1 @@ -run = "update-java-alternatives --set java-1.8.0-openjdk-amd64 && mvn -DskipTests clean package && java -jar target/askdata-backend-1.0-SNAPSHOT.jar --spring.profiles.active=prod" +run = "update-java-alternatives --set java-1.8.0-openjdk-amd64 && mvn -DskipTests package && java -jar target/askdata-backend-1.0-SNAPSHOT.jar --spring.profiles.active=prod" diff --git a/src/main/java/org/enthusa/askdata/controller/BiVenusController.java b/src/main/java/org/enthusa/askdata/controller/BiVenusController.java index 4c8ab42..a479c7d 100644 --- a/src/main/java/org/enthusa/askdata/controller/BiVenusController.java +++ b/src/main/java/org/enthusa/askdata/controller/BiVenusController.java @@ -132,6 +132,8 @@ public class BiVenusController { log.info("User msg: {}", userMsg); GptRequest completion = GptRequest.newRequest("Translate natural language to SQL queries."); + completion.setStop(Arrays.asList("#", ";")); + completion.setTemperature(0.0); completion.addUserMsg(userMsg); completion.setApiKey(System.getenv("INSCODE_API_KEY")); String reply = gptClient.chatCompletion(completion); diff --git a/src/main/java/org/enthusa/askdata/ext/inscode/GptClient.java b/src/main/java/org/enthusa/askdata/ext/inscode/GptClient.java index 13283c4..7acc227 100644 --- a/src/main/java/org/enthusa/askdata/ext/inscode/GptClient.java +++ b/src/main/java/org/enthusa/askdata/ext/inscode/GptClient.java @@ -40,6 +40,7 @@ public class GptClient { public String chatCompletion(GptRequest completion) { String json = JSON.toJSONString(completion); + log.debug("GptRequest: {}", json); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), json); Request request = new Request.Builder() diff --git a/src/main/java/org/enthusa/askdata/ext/inscode/GptRequest.java b/src/main/java/org/enthusa/askdata/ext/inscode/GptRequest.java index 679608a..5494ddd 100644 --- a/src/main/java/org/enthusa/askdata/ext/inscode/GptRequest.java +++ b/src/main/java/org/enthusa/askdata/ext/inscode/GptRequest.java @@ -3,6 +3,8 @@ package org.enthusa.askdata.ext.inscode; import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; +import lombok.Getter; +import lombok.Setter; import java.util.ArrayList; import java.util.List; @@ -17,7 +19,21 @@ public class GptRequest { System, Assistant, User } + @Getter private List messages; + + /** + * 在0和2之间使用什么采样温度?较高的值如0.8会使输出更随机,而较低的值如0.2会使其更加集中和确定性。 + * 默认值: 1 + */ + @Setter + @Getter + private Double temperature; + + @Setter + @Getter + private List stop; + @JsonProperty("apikey") @JSONField(name = "apikey") private String apiKey; diff --git a/src/main/resources/logback-dev.xml b/src/main/resources/logback-dev.xml index 4fd74f1..5549d85 100644 --- a/src/main/resources/logback-dev.xml +++ b/src/main/resources/logback-dev.xml @@ -23,7 +23,7 @@ - + diff --git a/src/test/java/org/enthusa/askdata/gpt/ChatGptTest.java b/src/test/java/org/enthusa/askdata/gpt/ChatGptTest.java index a739bf0..200f1e7 100644 --- a/src/test/java/org/enthusa/askdata/gpt/ChatGptTest.java +++ b/src/test/java/org/enthusa/askdata/gpt/ChatGptTest.java @@ -6,6 +6,7 @@ import org.enthusa.askdata.ext.inscode.GptRequest; import org.junit.Test; import javax.annotation.Resource; +import java.util.Arrays; /** * @author henry @@ -19,6 +20,7 @@ public class ChatGptTest extends AbstractTest { public void test() throws InterruptedException { GptRequest request = GptRequest.newRequest("Translate natural language to SQL queries."); request.addUserMsg("你能做什么?"); + request.setStop(Arrays.asList("#", ";")); request.setApiKey(System.getenv("INSCODE_API_KEY")); System.out.println(gptClient.chatCompletion(request)); } -- GitLab