ChatGPT使用步驟
SpringBoot使用
依賴
<dependency>
<groupId>com.theokanning.openai-gpt3-java</groupId>
<artifactId>service</artifactId>
<version>${gpt.server.version}</version>
</dependency>
封裝了豐富的OpenAI 接口可直接使用文章來源:http://www.zghlxwxcb.cn/news/detail-469742.html
實例
private final ChatGptProperties config;
private OpenAiService service;
@PostConstruct
public void init() {
ObjectMapper mapper = defaultObjectMapper();
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(config.getProxyDomain(), config.getProxyPort()));
OkHttpClient client = defaultClient(config.getApiKey(), Duration.ofMinutes(1))
.newBuilder()
.proxy(proxy)
.build();
Retrofit retrofit = defaultRetrofit(client, mapper);
OpenAiApi api = retrofit.create(OpenAiApi.class);
service = new OpenAiService(api);
}
@PostMapping("/completions/chat")
public R chatCompletions(@RequestBody(required = false) FnRequest param) {
final List<ChatMessage> messages = new ArrayList<>();
final ChatMessage systemMessage = new ChatMessage(ChatMessageRole.USER.value(), param.getData().toString());
messages.add(systemMessage);
ChatCompletionRequest chatCompletionRequest = ChatCompletionRequest
.builder()
.model("gpt-3.5-turbo")
.messages(messages)
.temperature(0.6d)
.n(1)
.frequencyPenalty(1.2d)
.presencePenalty(1.6d)
// .stream(true)
// .user("testing")
.maxTokens(1024)
.logitBias(new HashMap<>())
.build();
StringBuffer stringBuffer = new StringBuffer();
String br = System.getProperty("line.separator");
service.createChatCompletion(chatCompletionRequest).getChoices()
.forEach(c -> stringBuffer.append(c.getMessage().getContent()).append(br));
return R.ok(stringBuffer.toString());
}
接口參數(shù)含義
temperature: 0.0 to 2.0 (默認 1.0) 溫度,越高越隨機,越低越有規(guī)律(或確定性)。
top_p: 0.0 to 1.0 (默認 1.0) 使用溫度的另一種選擇,也叫核采樣(nucleus sampling),建議不要同時使用 temperature 和 top_p。top_p 表示模型只考慮概率最高的 top_p 的 token,比如 top_p=0.1,表示模型只考慮概率最高的 10% 的 token。
n: number (默認 1) 生成的回復數(shù)量。
stream: boolean (默認 False) 是否使用流式模式,如果設(shè)置為 True,將發(fā)送部分消息增量,就像在 ChatGPT 中一樣。什么意思捏,就是每次單獨給你蹦幾個詞,好讓你動態(tài)的去更新文本,像你在 ChatGPT 中等待完整的回復一樣。
stop: string or array (默認 None) 用來停止生成的 token,可以是一個字符串,也可以是一個字符串列表,如果是字符串列表,那么只要其中一個 token 出現(xiàn),就會停止生成,最多 4 個。
max_tokens: inf (默認 4096-prompt_token) 生成的最大 token 數(shù)量。
frequency_penalty 和 presence_penalty: -2.0 to 2.0 (默認 0) 用來懲罰重復的 token。關(guān)于此參數(shù)的更多細節(jié)在 4 中有介紹,看起來一個是處理的頻率,一個是處理的存在次數(shù)(整數(shù))。這兩個參數(shù)的值越大,生成的文本越不會重復。
公式是這樣的:
mu[j] -> mu[j] - c[j] * alpha_frequency - float(c[j] > 0) * alpha_presence
logit_bias: dict (默認 None) 用來調(diào)整 token 的概率,可以接受 json。數(shù)值是 -100 to 100,-100 相當于直接禁用這個詞,100 相當于如果相關(guān)就必須使用。
user: dict (默認 None) 用來設(shè)置用戶的信息,具體內(nèi)容可以參考 5,主要是為了防止濫用。
升級ChatGPT PLUS
步驟
- 申請外國虛擬信用卡【Depay】
- 充值USTD虛擬貨幣【歐易】
- USTD充值到Depay
- Depay 的USTD 轉(zhuǎn) USD虛擬貨幣
- 將USD貨幣存入虛擬信用卡
- 通過虛擬信用卡充值到ChatGPT
優(yōu)點
- 優(yōu)先ChatGPT試用用戶
- 暢享絲滑的響應(yīng)速度
- 優(yōu)先體驗新功能
原文文章來源地址http://www.zghlxwxcb.cn/news/detail-469742.html
鳴謝
- 非常感謝你從頭到尾閱讀了這篇文章,希望其中的內(nèi)容對你有所啟發(fā)和幫助。如果你還有其他問題或需要進一步的了解,歡迎隨時關(guān)注我的動態(tài)并留言
- 最后可以給作者點個關(guān)注和小贊贊嘛,謝謝!
- 覺得有收藏價值可以進行收藏
到了這里,關(guān)于一文讀懂Springboot如何使用ChatGPT【OpenAI官方Springboot依賴,極強接口封裝】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!