跳到内容

步骤 02 - LLM 配置

在本步骤中,我们将调整语言模型(LLM)的各种配置,这些配置将在后续步骤中使用。

您可以使用来自 step-01 的代码继续,或者查看位于 step-02 目录中的最终代码。

不要忘记关闭应用程序

如果您从上一步运行了应用程序,并且决定使用 step-02 目录,请确保在继续之前停止它(按 Ctrl+C)。

配置

应用程序通过 src/main/resources/application.properties 文件进行配置。

application.properties
quarkus.langchain4j.openai.api-key=${OPENAI_API_KEY}

quarkus.langchain4j.openai.chat-model.model-name=gpt-4o
quarkus.langchain4j.openai.chat-model.log-requests=true
quarkus.langchain4j.openai.chat-model.log-responses=true

# If you want to use a different provider or run an LLM on your local machine,
# uncomment this line and update the url/port accordingly.
#quarkus.langchain4j.openai.base-url=https://:35000/v1

quarkus.langchain4j.timeout=1m

quarkus.langchain4j.openai.api-key 属性是 OpenAI API 密钥。在我们的例子中,我们将其配置为从 OPENAI_API_KEY 环境变量读取。

其余配置指定了使用的模型(gpt-4o)以及是否将请求和响应记录到终端的模型。

重新加载

更改配置属性后,您需要强制重启应用程序以应用更改。仅提交 UI 中的新聊天消息不会触发它(它只发送 websocket 消息而不是 HTTP 请求),因此您必须刷新浏览器中的页面。

信息

大多数模型参数的精确含义可以在 OpenAI 网站上找到。

Temperature(温度)

quarkus.langchain4j.openai.chat-model.temperature 控制模型响应的随机性。降低温度会使模型更保守,而提高温度会使其更具创造性。

尝试添加

quarkus.langchain4j.openai.chat-model.temperature=0.1

src/main/resources/application.properties 并尝试提问

Describe a sunset over the mountains

然后将温度设置为 1.5 并再次提问,观察响应的不同风格。温度过高,模型通常会开始产生无意义的内容,响应时间过长,或者根本无法产生有效的响应。

需要确定性响应的应用程序应将温度设置为 0。请注意,这并不能保证相同的输入产生相同的响应,但会使响应更可预测。

需要更多创造力的应用程序(例如,为故事生成文本)可以将温度设置为 0.3 或更高。

目前,将温度设置为 1.0

Max tokens(最大令牌数)

quarkus.langchain4j.openai.chat-model.max-tokens 限制响应的长度。

尝试添加

quarkus.langchain4j.openai.chat-model.max-tokens=20

src/main/resources/application.properties,看看模型如何将响应截断为 20 个令牌。

令牌不是单词,而是模型可以生成的文本的最小单元。例如,“Hello, world!” 有 3 个令牌:“Hello”、“,” 和 “world”。每个模型都有不同的令牌化方案,因此句子中的令牌数量会因模型而异。

目前,将最大令牌数设置为 1000

Frequency penalty(频率惩罚)

quarkus.langchain4j.openai.chat-model.frequency-penalty 定义了模型应该在多大程度上避免重复自己。

尝试添加

quarkus.langchain4j.openai.chat-model.frequency-penalty=2

src/main/resources/application.properties,然后提问

Repeat the word hedgehog 50 times

模型很可能会在重复词语几次后开始产生无意义的内容。

将值更改为 0,您可能会看到模型重复该词 50 次。

信息

OpenAI 模型的最大惩罚值为 2

最终配置

在调整完配置后,您可以将其设置为以下值:

application.properties
quarkus.langchain4j.openai.api-key=${OPENAI_API_KEY}

quarkus.langchain4j.openai.chat-model.model-name=gpt-4o
quarkus.langchain4j.openai.chat-model.log-requests=true
quarkus.langchain4j.openai.chat-model.log-responses=true

quarkus.langchain4j.openai.chat-model.temperature=1.0
quarkus.langchain4j.openai.chat-model.max-tokens=1000
quarkus.langchain4j.openai.chat-model.frequency-penalty=0

现在让我们切换到 下一步