在大语言模型(LLM)或多模态模型中,模型参数分为两类:
一类是模型训练阶段固化的权重参数(决定模型的基础能力)
另一类是推理阶段可调的生成控制参数(如温度、TopP、TopK)
下面将介绍如何通过 LangChain4j 调整大模型的生成控制参数。
通常,根据你选择的模型和提供商(不同的模型和提供商提供的参数存在差异),你可以调整众多参数,这些参数将定义:
模型的输出:生成内容(文本、图像)中的创造性或确定性程度、生成内容的量等。
连接性:基础 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 |
maxTokens | 在聊天补全中可以生成的最大token数量。 | Integer |
frequencyPenalty | 介于-2.0到2.0之间的数字。正值会根据新标记在目前文本中的现有频率对其进行惩罚,从而降低模型逐字重复相同内容的可能性。 | Double |
... | ... | ... |
有关 OpenAI 大语言模型中的完整参数列表,请参见 OpenAI 语言模型页面。每个模型的完整参数列表和默认值可在单独的模型页面(位于 “集成”、“语言模型” 和 “图像模型” 下方)中找到。
您可以通过两种方式创建 *Model:
一个静态工厂,它只接受必需的参数(如API密钥),而所有其他必需的参数都设置为合理的默认值。
构建者模式:在这里,你可以为每个参数指定值。
我们可以使用构建器模式设置模型的所有可用参数,如下所示:
OpenAiChatModel model = OpenAiChatModel.builder()
.apiKey(System.getenv("OPENAI_API_KEY"))
.modelName("gpt-4o-mini")
.temperature(0.3)
.timeout(ofSeconds(60))
.logRequests(true)
.logResponses(true)
.build();Quarkus 应用程序中的 LangChain4j 参数可以在 application.properties 文件中按如下方式设置:
quarkus.langchain4j.openai.api-key=${OPENAI_API_KEY}
quarkus.langchain4j.openai.chat-model.temperature=0.5
quarkus.langchain4j.openai.timeout=60s什么是 Quarkus 应用程序?简单来说是基于 Quarkus 框架构建的、专为云原生和容器化环境(尤其是 Kubernetes)优化的 Java 应用,核心特点是 “为 GraalVM 和容器量身打造”,解决了传统 Java 应用启动慢、内存占用高的痛点。
有趣的是,为了调试、调整甚至只是了解所有可用参数,你可以查看 Quarkus 的 DEV UI。在这个仪表盘中,你可以进行更改,这些更改会立即反映在运行中的实例上,并且你的更改会自动移植到代码中。通过使用命令 quarkus dev 运行你的 Quarkus 应用程序,就可以访问 DEV UI,然后你可以在localhost:8080/q/dev-ui(或者你部署应用程序的其他位置)找到它。

有关 Quarkus 集成的更多信息可以在此处找到。
如果你正在使用我们的 Spring Boot 启动器之一,你可以在 application.properties 文件中按如下方式配置模型参数:
langchain4j.open-ai.chat-model.api-key=${OPENAI_API_KEY}
langchain4j.open-ai.chat-model.model-name=gpt-4-1106-preview
...或者在 application.yml 文件中这样做:
# langchain4j 配置
langchain4j:
open-ai:
chat-model:
base-url: https://api.xty.app/v1
# 推荐:将OPEN_API_KEY设置成环境变量, 避免硬编码或随着代码泄露
# 注意,设置完环境变量记得重启IDEA,不然可能环境变量不会生效
api-key: ${OPEN_API_KEY}
model-name: gpt-3.5-turbo
log-requests: true
log-responses: true支持的属性完整列表可在此处找到。
有关 Spring Boot 集成的更多信息可在此处找到。
👉更多 LangChain4j 知识请继续阅读后续章节……