GitHub Models 使用指南

一、GitHub Models

  GitHub Models 是GitHub最新推出的模型托管服务,提供免费的AI模型供开发者测试。可以使用的模型有 GPT-4o、Phi 3、Llama 3.1等,可以说很全面的了。现在可以申请加入waitlist,通过后就可以使用这些模型了。

二、模型调用

  GitHub Models提供了Playground 进行调试,当然也可以直接使用API。例如使用cURL请求:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
curl -X POST "https://models.inference.ai.azure.com/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-d '{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "What is the capital of France?"
}
],
"model": "gpt-4o"
}'

  调用方式和OpenAI基本一致,只是请求地址从api.openai.com/v1变成了models.inference.ai.azure.com,使用GITHUB_TOKEN作为apikey。

三、接入 one-api

  我喜欢用one-api来进行api管理。但是GitHub Models的请求地址因为少了 /v1 没办法直接接入one-api。这里选择用cloudflare workers做一个接口转发,去除请求地址中的/v1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
const url = new URL(request.url)

if (url.pathname.startsWith('/v1')) {
const newUrl = new URL(request.url)
newUrl.hostname = 'models.inference.ai.azure.com'
newUrl.pathname = newUrl.pathname.replace('/v1', '')

const newRequest = new Request(newUrl, {
method: request.method,
headers: request.headers,
body: request.body
})

return fetch(newRequest)
}

return fetch(request)
}

  使用worker的URL作为API地址,GITHUB_TOKEN作为apikey就可以将GitHub Models接入one-api了。

四、使用体验

  因为已经集成到one-api了,所以可以很方便的在各种AI应用中调试,例如在open-webui里使用:

  响应速度还是挺快的,不过和官方模型用起来有些差异,应该是版本有些不同。最后是模型使用限制,GPT-4o免费用户上下文限制到了8k,每分钟请求最大为10,每天最多请求50次。用来测试应用的话应该是够用的。


GitHub Models 使用指南
https://blog.ionosyne.com/2024/08/10/GitHub-Models-使用指南/
作者
iOnosyne
发布于
2024年8月10日
许可协议