跳到主要内容

GitHub Models

备注

这是 GitHub Models 集成的文档,它使用 Azure AI 推理 API 访问 GitHub Models。

LangChain4j 提供了 4 种不同的与 OpenAI 集成的方式来使用聊天模型,这是第 4 种:

  • OpenAI 使用 OpenAI REST API 的自定义 Java 实现,最适合与 Quarkus(因为它使用 Quarkus REST 客户端)和 Spring(因为它使用 Spring 的 RestClient)一起使用。
  • OpenAI 官方 SDK 使用官方 OpenAI Java SDK。
  • Azure OpenAI 使用来自 Microsoft 的 Azure SDK,如果您使用 Microsoft Java 技术栈,包括高级 Azure 认证机制,它会工作得最好。
  • GitHub Models 使用 Azure AI 推理 API 访问 GitHub Models。

如果您想开发生成式 AI 应用程序,可以使用 GitHub Models 免费查找和试验 AI 模型。 一旦您准备好将应用程序投入生产,可以切换到付费 Azure 账户的令牌。

GitHub Models 文档

Maven 依赖

纯 Java

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-github-models</artifactId>
<version>1.0.0-beta3</version>
</dependency>

GitHub 令牌

要使用 GitHub Models,您需要使用 GitHub 令牌进行认证。

令牌在 GitHub 开发者设置 > 个人访问令牌 中创建和管理。

一旦您有了令牌,可以将其设置为环境变量并在代码中使用:

export GITHUB_TOKEN="<your-github-token-goes-here>"

使用 GitHub 令牌创建 GitHubModelsChatModel

纯 Java

GitHubModelsChatModel model = GitHubModelsChatModel.builder()
.gitHubToken(System.getenv("GITHUB_TOKEN"))
.modelName("gpt-4o-mini")
.build();

这将创建一个 GitHubModelsChatModel 实例。 模型参数(例如 temperature)可以通过在 GitHubModelsChatModel 的构建器中提供值来自定义。

Spring Boot

创建一个 GitHubModelsChatModelConfiguration Spring Bean:

package com.example.demo.configuration.github;

import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.github.GitHubModelsChatModel;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

@Configuration
@Profile("github")
public class GitHubModelsChatModelConfiguration {

@Value("${GITHUB_TOKEN}")
private String gitHubToken;

@Bean
ChatLanguageModel gitHubModelsChatLanguageModel() {
return GitHubModelsChatModel.builder()
.gitHubToken(gitHubToken)
.modelName("gpt-4o-mini")
.logRequestsAndResponses(true)
.build();
}
}

这个配置将创建一个 GitHubModelsChatModel bean, 它可以被 AI 服务 使用 或在需要的地方自动装配,例如:

@RestController
class ChatLanguageModelController {

ChatLanguageModel chatLanguageModel;

ChatLanguageModelController(ChatLanguageModel chatLanguageModel) {
this.chatLanguageModel = chatLanguageModel;
}

@GetMapping("/model")
public String model(@RequestParam(value = "message", defaultValue = "Hello") String message) {
return chatLanguageModel.chat(message);
}
}

使用 GitHub 令牌创建 GitHubModelsStreamingChatModel

纯 Java

GitHubModelsStreamingChatModel model = GitHubModelsStreamingChatModel.builder()
.gitHubToken(System.getenv("GITHUB_TOKEN"))
.modelName("gpt-4o-mini")
.logRequestsAndResponses(true)
.build();

Spring Boot

创建一个 GitHubModelsStreamingChatModelConfiguration Spring Bean:

package com.example.demo.configuration.github;

import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.github.GitHubModelsChatModel;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

@Configuration
@Profile("github")
public class GitHubModelsStreamingChatModelConfiguration {

@Value("${GITHUB_TOKEN}")
private String gitHubToken;

@Bean
GitHubModelsStreamingChatModel gitHubModelsStreamingChatLanguageModel() {
return GitHubModelsStreamingChatModel.builder()
.gitHubToken(System.getenv("GITHUB_TOKEN"))
.modelName("gpt-4o-mini")
.logRequestsAndResponses(true)
.build();
}
}

示例