diff --git a/.inscode b/.inscode index 30ba060223b4daf10ab54828dafb980ea5535a68..5fbbf1405a614a5c80ae9e2cb415a34963de2499 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 4c8ab4275ca14dcb1ef8fcec0f25b273b2ad244c..a479c7dd9d7f6ee960466b9ee8e320ab8f533c21 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 13283c4aed43c04168277779a037917220cdc4ef..7acc2277455036916ed635e5984422073ee9f3f9 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 679608a7a54f8755302dd75fac224971f3321422..5494dddff8d8a0b8b518ada13f30a5e50018b737 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 4fd74f18ca3f745f7cf78a8d9830a8ecbd952781..5549d8514554694b90c7a394c6169ed398477f64 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 a739bf03807d39914ecdcafd84e4eaab27a1f859..200f1e7f37911603a4243f7053a9bc1998f1be66 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)); }