Skip to content
xiaoyang 的头像xiaoyang发布于 2025-01-142,479 字阅读约 8 分钟浏览加载中

模型参数 ​

根据您选择的模型和提供方,您可以调整许多参数,这些参数将决定:

  • 模型的输出:生成内容(文本、图像)的创造性或确定性水平、生成内容的体量等。
  • 连接性:基本 URL、授权密钥、超时、重试次数、日志记录等。

通常,您可以在模型提供方的网站上找到所有参数及其含义。 例如,OpenAI API 的参数可以在 https://platform.openai.com/docs/api-reference/chat(最新版本)中找到,包含以下选项:

参数描述类型
modelName要使用的模型名称(例如 gpt-4o、gpt-4o-mini 等)。String
temperature使用的采样温度,范围为 0 到 2。较高的值(如 0.8)会使输出更随机,而较低的值(如 0.2)会使输出更专注且更具确定性。Double
max_tokens在聊天完成中可以生成的最大 token 数量。Integer
frequencyPenalty-2.0 到 2.0 之间的值。正值会根据 token 在文本中的现有频率对新 token 进行惩罚,从而降低模型逐字重复相同行的可能性。Double
.........

有关 OpenAI LLM 的完整参数列表,请参见 OpenAI 语言模型页面。 每个模型的完整参数和默认值列表可在相应的模型页面(集成、语言模型和图像模型下)找到。

您可以通过两种方式创建 *Model:

  • 静态工厂方法:仅接受必要参数(如 API 密钥),所有其他必要参数均设置为合理的默认值。
  • 构建器模式:可以为每个参数指定值。

静态工厂方法 ​

java
OpenAiChatModel model = OpenAiChatModel.withApiKey("demo");

以 OpenAI 聊天模型为例,一些默认值如下:

参数默认值
modelNamegpt-3.5-turbo
temperature0.7
timeout60s
logRequestsfalse
logResponsesfalse
......

所有模型的默认值可以在各自提供商的页面(集成下)找到。

构建器模式 ​

我们可以使用构建器模式设置模型的每个可用参数,如下所示:

java
OpenAiChatModel model = OpenAiChatModel.builder()
        .apiKey("demo")
        .modelName("gpt-4")
        .temperature(0.3)
        .timeout(ofSeconds(60))
        .logRequests(true)
        .logResponses(true)
        .build();

在 Quarkus 中设置参数 ​

可以在 Quarkus 应用程序的 application.properties 文件中设置 LangChain4j 参数,如下所示:

quarkus.langchain4j.openai.api-key=${OPENAI_API_KEY}
quarkus.langchain4j.openai.chat-model.temperature=0.5
quarkus.langchain4j.openai.timeout=60s

有趣的是,为了调试、调整甚至仅仅了解所有可用参数,可以查看 Quarkus 的 DEV UI。 在此仪表板中,您可以进行更改,这些更改将立即反映在运行中的实例中,并会自动移植到代码中。 DEV UI 可通过运行命令 quarkus dev 启动 Quarkus 应用程序访问,随后可以在 localhost:8080/q/dev-ui(或您部署应用程序的位置)找到。

image-20250114171348242

有关 Quarkus 集成的更多信息,请参见 此处。

在 Spring Boot 中设置参数 ​

如果您正在使用我们的 Spring Boot starters, 可以在 application.properties 文件中配置模型参数,如下所示:

langchain4j.open-ai.chat-model.api-key=${OPENAI_API_KEY}
langchain4j.open-ai.chat-model.model-name=gpt-4-1106-preview
...

支持的属性的完整列表可以在 此处找到。

有关 Spring Boot 集成的更多信息,请参见 此处。

DISCUSSION

评论区

欢迎分享你的思考、补充或问题。

基于 VitePress 搭建