LangChain4j 从入门到放弃,java可以使用的 LLM 大模型 AI 框架(3)模型参数

注意:本篇文章建立在官方文档的理解上,文章会围绕官方文档去书写,博主会根据对框架的理解去动态修改文章内容,由于该框架的官方文档写的并不是很详细,市面上也没有特别详细的教程,所以博主也不能很全面的理解整个框架,但是对于入门来说,已经足够了,如果有看不懂的地方建议把全部文章都阅读一遍后再回顾会有不同的理解。

模型参数(Model Parameters)

官网 Model Parameters 介绍
根据选择的模型和提供商,可以调整许多参数,这些参数将决定:

  • 模型的输出:生成内容(文本、图像)的创造性或确定性水平,生成内容的数量等。
  • 连接性:基本 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 之间的数字。正值会根据新标记在当前文本中已存在的频率进行惩罚,降低模型逐字重复同一行的可能性。 Double

要获取 OpenAI LLM 的完整参数列表,请参见 OpenAI 语言模型页面。每个模型的完整参数列表和默认值可以在各自的模型页面(位于“Integration”、“Language Model”和“Image Model”下)找到。

创建模型的方法

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

  • 静态工厂:仅接受必需的参数,例如 API 密钥,所有其他必需参数设置为合理的默认值。
  • 构建器模式:在此,你可以为每个参数指定值。

静态工厂

以 OpenAI 聊天模型为例,使用静态工厂方法可以如下创建:

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

在这个例子中,modelNametemperature 等参数会采用 OpenAI API 的默认值。以下是一些常见的默认值:

参数 默认值
modelName gpt-3.5-turbo
temperature 0.7
timeout 60s
logRequests false
logResponses false

所有模型的默认值可以在各自提供商的页面下找到,详见集成

构建器模式

如果你需要更多的定制化,构建器模式允许你在实例化时对每个参数进行详细配置。例如:

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。在此仪表板中,你所做的更改将立即反映在正在运行的实例中,并且你的更改会自动移植到代码中。可以通过使用命令 quarkus dev 运行 Quarkus 应用程序来访问 Dev UI,然后你可以在 localhost:8080/q/dev-ui(或你部署应用程序的任何位置)找到它。
在这里插入图片描述

更多关于 Quarkus 集成的信息,请参见 Quarkus 集成教程

在 Spring Boot 中设置模型参数

如果你正在使用 LangChain4j 的 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
...

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

更多关于 Spring Boot 集成的详细信息,请参见 Spring Boot 集成教程