# Github Models(AI接口),申请使用教程

作者:小傅哥
博客:https://bugstack.cn (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

大家好,我是技术UP主小傅哥。

现在做 AI 应用开发的小伙伴越来越多了,随之而来的是对 LLM 大模型接口的使用依赖。一般的模型,可能会让程序出现幻觉。而高质量的模型,大部分是需要付费,比如 openai/gpt-5azureml-xai/grok3azureml/Phi-4 等。那怎么办!?🤔

这些免费的不错的大模型(LLM),也都是有对应的频次和最大出入/输出token的限制。虽然不会让咱们玩命的调用测试。但在程序开发初期,对于单个功能的验证还是非常方便的。接下来,小傅哥就给大家演示下,关于 Github 免费提供的大模型如何配置使用。

# 一、模型说明

# 1. 官网地址

官网:https://github.com/marketplace?type=models (opens new window)

在 Github marketplace 下提供了非常多的免费的 LLM 使用,gpt-5、gpt-4.1 都是有的,具备完整的测试功能。有时候还会新增加其他模型。

# 2. 频次限制

地址:https://docs.github.com/en/github-models/use-github-models/prototyping-with-ai-models#rate-limits (opens new window)

  • 每日150次、每分钟15次,每次token,8000进、4000出。对于单个模型的验证是没问题的,不过对于复杂的 ai agent 智能体是跑不动的。所以,这块测试的话,要分开验证。之后对于全流程的,在购买 api 进行测试即可。
  • 如果小伙伴还觉得,每分钟15次,有点不够干的,那你可以弄10个账号,通过 nginx 负载下,这样基本每分钟150次,一天1500次还是很够用的。

# 二、模型使用

# 1. 测试工程

# 2. 对接申请

# 2.1 申请token

地址:https://github.com/settings/tokens/new

  • 在 Tokens 下,添加 Note 描述和过期时间,完事后不用加任何其他权限,拉到最后设置点击 Generate token 生成令牌即可。
  • 生成后复制你的 Token,复制后关闭就看不见了。只有删除和创建新的。

# 2.2 查看curl(api)

地址:https://github.com/marketplace/models/azure-openai/gpt-4-1/playground (opens new window)

在左侧你可以选择需要使用的模型,之后进行对话验证。之后,在右侧有一个 Use this model 这里可以获得模型 API 请求信息。

你现在单独验证 api,在整个程序测试前,要确保你的 api 是可用的。

# 3. 测试验证

public class ApiTest {

    public static void main(String[] args) throws Exception {
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
        Resource resource = new ClassPathResource("dog.png", classLoader);

        OpenAiApi openAiApi = OpenAiApi.builder()
                .baseUrl("https://models.github.ai/inference")
                // apikey 要替换为你的,在 https://github.com/settings/tokens 创建即可。
                .apiKey("ghp_FfiwBkVunYDQyhIwaQSccVw******")
                .completionsPath("/chat/completions")
                .embeddingsPath("/embeddings")
                .build();

        ChatModel chatModel = OpenAiChatModel.builder()
                .openAiApi(openAiApi)
                .defaultOptions(OpenAiChatOptions.builder()
                        .model("openai/gpt-4.1")
                        .build())
                .build();

        // 模型测试,没问题可以识别图片
        ChatResponse response = chatModel.call(new Prompt(
                UserMessage.builder()
                        .text("请描述这张图片的主要内容,并说明图中物品的可能用途。")
                        .media(Media.builder()
                                .mimeType(MimeType.valueOf(MimeTypeUtils.IMAGE_PNG_VALUE))
                                .data(resource)
                                .build())
                        .build()));

        System.out.println("测试结果" + JSON.toJSONString(response));

    }

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
测试结果{"metadata":{"empty":false,"id":"chatcmpl-CzHhVYaXPv3HjJ3oKE4YKPamPQRQB","model":"gpt-4.1-2025-04-14","rateLimit":{"requestsLimit":1000,"requestsRemaining":996,"tokensLimit":1000000,"tokensRemaining":980423},"usage":{"completionTokens":0,"nativeUsage":{},"promptTokens":0,"totalTokens":0}},"result":{"metadata":{"contentFilters":[],"empty":true,"finishReason":"STOP"},"output":{"media":[],"messageType":"ASSISTANT","metadata":{"role":"ASSISTANT","messageType":"ASSISTANT","finishReason":"STOP","refusal":"","index":0,"annotations":[{"$ref":"$.metadata.rateLimit.usage.nativeUsage"}],"id":"chatcmpl-CzHhVYaXPv3HjJ3oKE4YKPamPQRQB"},"text":"这张图片的主要内容是一只卡通风格的小狗。小狗是棕色的,脸部较大,眼睛圆而突出,表情看起来有些疑惑或惊讶,嘴巴微微张开,尾巴翘起。整个形象简洁可爱,线条和颜色运用都比较简单。\n\n**物品的可能用途:**\n1. **图标或表情包**:这种卡通形象常用于聊天软件中的表情包或头像,传达惊讶、困惑等情感。\n2. **儿童绘本或动画角色**:可以作为儿童图书或动画中的形象角色,吸引小朋友的注意力。\n3. **宠物相关宣传设计**:可用于宠物店、宠物产品的宣传海报、包装或logo,增加亲和力。\n4. **教育材料**:在教学课件或教育类APP中,用于引导、示范或者增加趣味性。\n\n整体而言,这是一种很常见且可爱的卡通动物形象,主要用于与宠物、儿童或者情感表达相关的领域。","toolCalls":[]}},"results":[{"$ref":"$.metadata.rateLimit.usage.nativeUsage.result"}]}
1
  • 这是一段基于 Spring AI 配置 github llm api的使用方式,尤其注意,baseUrl、apiKey、completionsPath、embeddingsPath、openai/gpt-4.1,这些配置信息和你直接使用管的 gpt 配置是有差异的。
  • 本案例,是识别图片的用途,你也可以验证其他功能。这样的项目在小傅哥的 《AI Agent 智能体》 (opens new window) 都有讲解。

# 三、使用拓展

# 1. 部署脚本

# 2. 转发说明(nginx)

如果你希望在使用的过程中,让模型是以你之前使用 openai 一样的方式,那么可以配置一套 Nginx 转发;

server {
    listen       80;
    listen  [::]:80;
    server_name  需要配置域名(api.xxx.cn);

    rewrite ^(.*) https://$server_name$1 permanent;

}

server {
    listen       443 ssl;
    server_name  需要配置域名(api.xxx.cn);

    ssl_certificate      /etc/nginx/ssl/_.itedus.cn.pem;
    ssl_certificate_key  /etc/nginx/ssl/_.itedus.cn.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /v1/ {
        # 去掉路径中的/v1前缀
        rewrite ^/v1/(.*) /$1 break;
        proxy_pass https://models.inference.ai.azure.com;
        proxy_http_version 1.1;
        chunked_transfer_encoding off;
        proxy_buffering off;
        proxy_cache off;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  • nginx 的方式是,当访问有 v1/ 路径的时候,在进行路径重写 rewrite ^/v1/(.*) /$1 break; 之后转发到 https://models.inference.ai.azure.com - 这个也是 gpt 里的一种模型对接地址
  • 转发后,你就可以直接使用模型服务了。

# 3. curl 验证

  • 配置转发后,就可以使用 curl_nginx.sh 脚本进行验证了。

好啦,本文到这,你就可以初步使用免费的 LLM 进行一些一些初始功能验证。2025年,ai agent 开始崛起,2026年,必然是 ai agent 爆发的时候。一定要多学习这类实战项目,企业里 spring 是大盘,所以结合 spring ai 做的项目也必然会非常多。