mirror of
				https://github.com/songquanpeng/one-api.git
				synced 2025-11-04 15:53:42 +08:00 
			
		
		
		
	Merge branch 'main' into upstream-pr-2182
This commit is contained in:
		
							
								
								
									
										2
									
								
								.github/workflows/docker-image.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/docker-image.yml
									
									
									
									
										vendored
									
									
								
							@@ -55,7 +55,7 @@ jobs:
 | 
			
		||||
        uses: docker/metadata-action@v4
 | 
			
		||||
        with:
 | 
			
		||||
          images: |
 | 
			
		||||
            ${{ contains(github.ref, 'alpha') && 'justsong/one-api-alpha' || 'justsong/one-api' }}
 | 
			
		||||
            ${{ contains(github.ref, 'alpha') && 'sagitchu/one-api-alpha' || 'sagitchu/one-api' }}
 | 
			
		||||
            ${{ contains(github.ref, 'alpha') && format('ghcr.io/{0}-alpha', github.repository) || format('ghcr.io/{0}', github.repository) }}
 | 
			
		||||
 | 
			
		||||
      - name: Build and push Docker images
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										74
									
								
								.github/workflows/sync-upstream.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								.github/workflows/sync-upstream.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,74 @@
 | 
			
		||||
name: Sync Upstream PRs
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: '0 */6 * * *'  # 每6小时运行一次
 | 
			
		||||
  workflow_dispatch:  # 允许手动触发
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  sync:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    permissions: # 添加必要的权限
 | 
			
		||||
      pull-requests: write
 | 
			
		||||
      contents: write
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 0  # 获取完整历史
 | 
			
		||||
          
 | 
			
		||||
      - name: Sync upstream pull requests
 | 
			
		||||
        uses: actions/github-script@v6
 | 
			
		||||
        with:
 | 
			
		||||
          github-token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
          script: |
 | 
			
		||||
            const upstream = 'songquanpeng/one-api';
 | 
			
		||||
            const [owner, repo] = upstream.split('/');
 | 
			
		||||
            
 | 
			
		||||
            // 获取上游仓库的PR
 | 
			
		||||
            const pulls = await github.rest.pulls.list({
 | 
			
		||||
              owner,
 | 
			
		||||
              repo,
 | 
			
		||||
              state: 'open'
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            // 为每个PR创建或更新对应的PR
 | 
			
		||||
            for (const pull of pulls.data) {
 | 
			
		||||
              try {
 | 
			
		||||
                const branchName = `upstream-pr-${pull.number}`;
 | 
			
		||||
                
 | 
			
		||||
                // 获取PR详细信息
 | 
			
		||||
                const prDetails = await github.rest.pulls.get({
 | 
			
		||||
                  owner,
 | 
			
		||||
                  repo,
 | 
			
		||||
                  pull_number: pull.number
 | 
			
		||||
                });
 | 
			
		||||
                
 | 
			
		||||
                // 创建新分支
 | 
			
		||||
                await exec.exec('git', ['fetch', `https://github.com/${owner}/${repo}.git`, `pull/${pull.number}/head:${branchName}`]);
 | 
			
		||||
                
 | 
			
		||||
                // 检查是否已存在相同的PR
 | 
			
		||||
                const existingPulls = await github.rest.pulls.list({
 | 
			
		||||
                  owner: context.repo.owner,
 | 
			
		||||
                  repo: context.repo.repo,
 | 
			
		||||
                  head: `${context.repo.owner}:${branchName}`,
 | 
			
		||||
                });
 | 
			
		||||
                
 | 
			
		||||
                if (existingPulls.data.length === 0) {
 | 
			
		||||
                  // 推送分支
 | 
			
		||||
                  await exec.exec('git', ['push', 'origin', branchName]);
 | 
			
		||||
                  
 | 
			
		||||
                  // 创建新的PR
 | 
			
		||||
                  await github.rest.pulls.create({
 | 
			
		||||
                    owner: context.repo.owner,
 | 
			
		||||
                    repo: context.repo.repo,
 | 
			
		||||
                    title: `[Upstream] ${pull.title}`,
 | 
			
		||||
                    body: `Synced from upstream PR: ${pull.html_url}\n\n${pull.body || ''}`,
 | 
			
		||||
                    head: branchName,
 | 
			
		||||
                    base: 'main'  // 根据实际情况修改目标分支
 | 
			
		||||
                  });
 | 
			
		||||
                }
 | 
			
		||||
              } catch (error) {
 | 
			
		||||
                console.log(`Error processing PR #${pull.number}: ${error.message}`);
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
@@ -72,7 +72,7 @@ _✨ 通过标准的 OpenAI API 格式访问所有的大模型,开箱即用 
 | 
			
		||||
   + [x] [Anthropic Claude 系列模型](https://anthropic.com) (支持 AWS Claude)
 | 
			
		||||
   + [x] [Google PaLM2/Gemini 系列模型](https://developers.generativeai.google)
 | 
			
		||||
   + [x] [Mistral 系列模型](https://mistral.ai/)
 | 
			
		||||
   + [x] [字节跳动豆包大模型](https://console.volcengine.com/ark/region:ark+cn-beijing/model)
 | 
			
		||||
   + [x] [字节跳动豆包大模型(火山引擎)](https://www.volcengine.com/experience/ark?utm_term=202502dsinvite&ac=DSASUQY5&rc=2QXCA1VI)
 | 
			
		||||
   + [x] [百度文心一言系列模型](https://cloud.baidu.com/doc/WENXINWORKSHOP/index.html)
 | 
			
		||||
   + [x] [阿里通义千问系列模型](https://help.aliyun.com/document_detail/2400395.html)
 | 
			
		||||
   + [x] [讯飞星火认知大模型](https://www.xfyun.cn/doc/spark/Web.html)
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ var ModelList = []string{
 | 
			
		||||
	"claude-3-5-sonnet-latest",
 | 
			
		||||
	"claude-3-5-sonnet-20240620",
 | 
			
		||||
	"claude-3-5-sonnet-20241022",
 | 
			
		||||
	"claude-3-7-sonnet-latest",
 | 
			
		||||
	"claude-3-5-sonnet-latest",
 | 
			
		||||
	"claude-3-7-sonnet-20250219",
 | 
			
		||||
	"claude-3-7-sonnet-latest",
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,6 @@ var AwsModelIDMap = map[string]string{
 | 
			
		||||
	"claude-3-5-sonnet-20241022": "anthropic.claude-3-5-sonnet-20241022-v2:0",
 | 
			
		||||
	"claude-3-5-sonnet-latest":   "anthropic.claude-3-5-sonnet-20241022-v2:0",
 | 
			
		||||
	"claude-3-5-haiku-20241022":  "anthropic.claude-3-5-haiku-20241022-v1:0",
 | 
			
		||||
	"claude-3-7-sonnet-latest":   "anthropic.claude-3-7-sonnet-20250219-v1:0",
 | 
			
		||||
	"claude-3-7-sonnet-20250219": "anthropic.claude-3-7-sonnet-20250219-v1:0",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,22 +1,34 @@
 | 
			
		||||
package openrouter
 | 
			
		||||
 | 
			
		||||
var ModelList = []string{
 | 
			
		||||
	"01-ai/yi-large",
 | 
			
		||||
	"aetherwiing/mn-starcannon-12b",
 | 
			
		||||
	"ai21/jamba-1-5-large",
 | 
			
		||||
	"ai21/jamba-1-5-mini",
 | 
			
		||||
	"ai21/jamba-instruct",
 | 
			
		||||
	"aion-labs/aion-1.0",
 | 
			
		||||
	"aion-labs/aion-1.0-mini",
 | 
			
		||||
	"aion-labs/aion-rp-llama-3.1-8b",
 | 
			
		||||
	"allenai/llama-3.1-tulu-3-405b",
 | 
			
		||||
	"alpindale/goliath-120b",
 | 
			
		||||
	"alpindale/magnum-72b",
 | 
			
		||||
	"amazon/nova-lite-v1",
 | 
			
		||||
	"amazon/nova-micro-v1",
 | 
			
		||||
	"amazon/nova-pro-v1",
 | 
			
		||||
	"anthracite-org/magnum-v2-72b",
 | 
			
		||||
	"anthracite-org/magnum-v4-72b",
 | 
			
		||||
	"openai/gpt-3.5-turbo",
 | 
			
		||||
	"openai/gpt-3.5-turbo-0125",
 | 
			
		||||
	"openai/gpt-3.5-turbo-0613",
 | 
			
		||||
	"openai/gpt-3.5-turbo-1106",
 | 
			
		||||
	"openai/gpt-3.5-turbo-16k",
 | 
			
		||||
	"openai/gpt-3.5-turbo-instruct",
 | 
			
		||||
	"openai/gpt-4",
 | 
			
		||||
	"openai/gpt-4-0314",
 | 
			
		||||
	"openai/gpt-4-1106-preview",
 | 
			
		||||
	"openai/gpt-4-32k",
 | 
			
		||||
	"openai/gpt-4-32k-0314",
 | 
			
		||||
	"openai/gpt-4-turbo",
 | 
			
		||||
	"openai/gpt-4-turbo-preview",
 | 
			
		||||
	"openai/gpt-4o",
 | 
			
		||||
	"openai/chatgpt-4o-latest",
 | 
			
		||||
	"openai/gpt-4o-2024-05-13",
 | 
			
		||||
	"openai/gpt-4o-2024-08-06",
 | 
			
		||||
	"openai/gpt-4o-2024-11-20",
 | 
			
		||||
	"openai/gpt-4o-mini",
 | 
			
		||||
	"openai/gpt-4o-mini-2024-07-18",
 | 
			
		||||
	"openai/gpt-4o:extended",
 | 
			
		||||
	"openai/o1",
 | 
			
		||||
	"openai/o1-mini",
 | 
			
		||||
	"openai/o1-mini-2024-09-12",
 | 
			
		||||
	"openai/o1-preview",
 | 
			
		||||
	"openai/o1-preview-2024-09-12",
 | 
			
		||||
	"openai/o3-mini",
 | 
			
		||||
	"openai/o3-mini-high",
 | 
			
		||||
	"anthropic/claude-2",
 | 
			
		||||
	"anthropic/claude-2.0",
 | 
			
		||||
	"anthropic/claude-2.0:beta",
 | 
			
		||||
@@ -37,6 +49,51 @@ var ModelList = []string{
 | 
			
		||||
	"anthropic/claude-3.5-sonnet-20240620",
 | 
			
		||||
	"anthropic/claude-3.5-sonnet-20240620:beta",
 | 
			
		||||
	"anthropic/claude-3.5-sonnet:beta",
 | 
			
		||||
	"anthropic/claude-3.7-sonnet:beta",
 | 
			
		||||
	"anthropic/claude-3.7-sonnet",
 | 
			
		||||
	"google/gemini-2.0-flash-001",
 | 
			
		||||
	"google/gemini-2.0-flash-exp:free",
 | 
			
		||||
	"google/gemini-2.0-flash-lite-preview-02-05:free",
 | 
			
		||||
	"google/gemini-2.0-flash-thinking-exp-1219:free",
 | 
			
		||||
	"google/gemini-2.0-flash-thinking-exp:free",
 | 
			
		||||
	"google/gemini-2.0-pro-exp-02-05:free",
 | 
			
		||||
	"google/gemini-exp-1206:free",
 | 
			
		||||
	"google/gemini-flash-1.5",
 | 
			
		||||
	"google/gemini-flash-1.5-8b",
 | 
			
		||||
	"google/gemini-flash-1.5-8b-exp",
 | 
			
		||||
	"google/gemini-pro",
 | 
			
		||||
	"google/gemini-pro-1.5",
 | 
			
		||||
	"google/gemini-pro-vision",
 | 
			
		||||
	"google/gemma-2-27b-it",
 | 
			
		||||
	"google/gemma-2-9b-it",
 | 
			
		||||
	"google/gemma-2-9b-it:free",
 | 
			
		||||
	"google/gemma-7b-it",
 | 
			
		||||
	"google/learnlm-1.5-pro-experimental:free",
 | 
			
		||||
	"google/palm-2-chat-bison",
 | 
			
		||||
	"google/palm-2-chat-bison-32k",
 | 
			
		||||
	"google/palm-2-codechat-bison",
 | 
			
		||||
	"google/palm-2-codechat-bison-32k",
 | 
			
		||||
	"x-ai/grok-2-1212",
 | 
			
		||||
	"x-ai/grok-2-vision-1212",
 | 
			
		||||
	"x-ai/grok-beta",
 | 
			
		||||
	"x-ai/grok-2-mini",
 | 
			
		||||
	"x-ai/grok-vision-beta",
 | 
			
		||||
	"01-ai/yi-large",
 | 
			
		||||
	"aetherwiing/mn-starcannon-12b",
 | 
			
		||||
	"ai21/jamba-1-5-large",
 | 
			
		||||
	"ai21/jamba-1-5-mini",
 | 
			
		||||
	"ai21/jamba-instruct",
 | 
			
		||||
	"aion-labs/aion-1.0",
 | 
			
		||||
	"aion-labs/aion-1.0-mini",
 | 
			
		||||
	"aion-labs/aion-rp-llama-3.1-8b",
 | 
			
		||||
	"allenai/llama-3.1-tulu-3-405b",
 | 
			
		||||
	"alpindale/goliath-120b",
 | 
			
		||||
	"alpindale/magnum-72b",
 | 
			
		||||
	"amazon/nova-lite-v1",
 | 
			
		||||
	"amazon/nova-micro-v1",
 | 
			
		||||
	"amazon/nova-pro-v1",
 | 
			
		||||
	"anthracite-org/magnum-v2-72b",
 | 
			
		||||
	"anthracite-org/magnum-v4-72b",
 | 
			
		||||
	"cognitivecomputations/dolphin-mixtral-8x22b",
 | 
			
		||||
	"cognitivecomputations/dolphin-mixtral-8x7b",
 | 
			
		||||
	"cohere/command",
 | 
			
		||||
@@ -62,28 +119,6 @@ var ModelList = []string{
 | 
			
		||||
	"eva-unit-01/eva-llama-3.33-70b",
 | 
			
		||||
	"eva-unit-01/eva-qwen-2.5-32b",
 | 
			
		||||
	"eva-unit-01/eva-qwen-2.5-72b",
 | 
			
		||||
	"google/gemini-2.0-flash-001",
 | 
			
		||||
	"google/gemini-2.0-flash-exp:free",
 | 
			
		||||
	"google/gemini-2.0-flash-lite-preview-02-05:free",
 | 
			
		||||
	"google/gemini-2.0-flash-thinking-exp-1219:free",
 | 
			
		||||
	"google/gemini-2.0-flash-thinking-exp:free",
 | 
			
		||||
	"google/gemini-2.0-pro-exp-02-05:free",
 | 
			
		||||
	"google/gemini-exp-1206:free",
 | 
			
		||||
	"google/gemini-flash-1.5",
 | 
			
		||||
	"google/gemini-flash-1.5-8b",
 | 
			
		||||
	"google/gemini-flash-1.5-8b-exp",
 | 
			
		||||
	"google/gemini-pro",
 | 
			
		||||
	"google/gemini-pro-1.5",
 | 
			
		||||
	"google/gemini-pro-vision",
 | 
			
		||||
	"google/gemma-2-27b-it",
 | 
			
		||||
	"google/gemma-2-9b-it",
 | 
			
		||||
	"google/gemma-2-9b-it:free",
 | 
			
		||||
	"google/gemma-7b-it",
 | 
			
		||||
	"google/learnlm-1.5-pro-experimental:free",
 | 
			
		||||
	"google/palm-2-chat-bison",
 | 
			
		||||
	"google/palm-2-chat-bison-32k",
 | 
			
		||||
	"google/palm-2-codechat-bison",
 | 
			
		||||
	"google/palm-2-codechat-bison-32k",
 | 
			
		||||
	"gryphe/mythomax-l2-13b",
 | 
			
		||||
	"gryphe/mythomax-l2-13b:free",
 | 
			
		||||
	"huggingfaceh4/zephyr-7b-beta:free",
 | 
			
		||||
@@ -158,37 +193,10 @@ var ModelList = []string{
 | 
			
		||||
	"nousresearch/nous-hermes-llama2-13b",
 | 
			
		||||
	"nvidia/llama-3.1-nemotron-70b-instruct",
 | 
			
		||||
	"nvidia/llama-3.1-nemotron-70b-instruct:free",
 | 
			
		||||
	"openai/chatgpt-4o-latest",
 | 
			
		||||
	"openai/gpt-3.5-turbo",
 | 
			
		||||
	"openai/gpt-3.5-turbo-0125",
 | 
			
		||||
	"openai/gpt-3.5-turbo-0613",
 | 
			
		||||
	"openai/gpt-3.5-turbo-1106",
 | 
			
		||||
	"openai/gpt-3.5-turbo-16k",
 | 
			
		||||
	"openai/gpt-3.5-turbo-instruct",
 | 
			
		||||
	"openai/gpt-4",
 | 
			
		||||
	"openai/gpt-4-0314",
 | 
			
		||||
	"openai/gpt-4-1106-preview",
 | 
			
		||||
	"openai/gpt-4-32k",
 | 
			
		||||
	"openai/gpt-4-32k-0314",
 | 
			
		||||
	"openai/gpt-4-turbo",
 | 
			
		||||
	"openai/gpt-4-turbo-preview",
 | 
			
		||||
	"openai/gpt-4o",
 | 
			
		||||
	"openai/gpt-4o-2024-05-13",
 | 
			
		||||
	"openai/gpt-4o-2024-08-06",
 | 
			
		||||
	"openai/gpt-4o-2024-11-20",
 | 
			
		||||
	"openai/gpt-4o-mini",
 | 
			
		||||
	"openai/gpt-4o-mini-2024-07-18",
 | 
			
		||||
	"openai/gpt-4o:extended",
 | 
			
		||||
	"openai/o1",
 | 
			
		||||
	"openai/o1-mini",
 | 
			
		||||
	"openai/o1-mini-2024-09-12",
 | 
			
		||||
	"openai/o1-preview",
 | 
			
		||||
	"openai/o1-preview-2024-09-12",
 | 
			
		||||
	"openai/o3-mini",
 | 
			
		||||
	"openai/o3-mini-high",
 | 
			
		||||
	"openchat/openchat-7b",
 | 
			
		||||
	"openchat/openchat-7b:free",
 | 
			
		||||
	"openrouter/auto",
 | 
			
		||||
	"perplexity/r1-1776",
 | 
			
		||||
	"perplexity/llama-3.1-sonar-huge-128k-online",
 | 
			
		||||
	"perplexity/llama-3.1-sonar-large-128k-chat",
 | 
			
		||||
	"perplexity/llama-3.1-sonar-large-128k-online",
 | 
			
		||||
@@ -197,6 +205,10 @@ var ModelList = []string{
 | 
			
		||||
	"perplexity/sonar",
 | 
			
		||||
	"perplexity/sonar-reasoning",
 | 
			
		||||
	"pygmalionai/mythalion-13b",
 | 
			
		||||
	"qwen/qwen-max",
 | 
			
		||||
	"qwen/qwen-plus",
 | 
			
		||||
	"qwen/qwen-turbo",
 | 
			
		||||
	"qwen/qwen-vl-plus:free",
 | 
			
		||||
	"qwen/qvq-72b-preview",
 | 
			
		||||
	"qwen/qwen-2-72b-instruct",
 | 
			
		||||
	"qwen/qwen-2-7b-instruct",
 | 
			
		||||
@@ -206,10 +218,6 @@ var ModelList = []string{
 | 
			
		||||
	"qwen/qwen-2.5-72b-instruct",
 | 
			
		||||
	"qwen/qwen-2.5-7b-instruct",
 | 
			
		||||
	"qwen/qwen-2.5-coder-32b-instruct",
 | 
			
		||||
	"qwen/qwen-max",
 | 
			
		||||
	"qwen/qwen-plus",
 | 
			
		||||
	"qwen/qwen-turbo",
 | 
			
		||||
	"qwen/qwen-vl-plus:free",
 | 
			
		||||
	"qwen/qwen2.5-vl-72b-instruct:free",
 | 
			
		||||
	"qwen/qwq-32b-preview",
 | 
			
		||||
	"raifle/sorcererlm-8x22b",
 | 
			
		||||
@@ -227,9 +235,5 @@ var ModelList = []string{
 | 
			
		||||
	"undi95/remm-slerp-l2-13b",
 | 
			
		||||
	"undi95/toppy-m-7b",
 | 
			
		||||
	"undi95/toppy-m-7b:free",
 | 
			
		||||
	"x-ai/grok-2-1212",
 | 
			
		||||
	"x-ai/grok-2-vision-1212",
 | 
			
		||||
	"x-ai/grok-beta",
 | 
			
		||||
	"x-ai/grok-vision-beta",
 | 
			
		||||
	"xwin-lm/xwin-lm-70b",
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -101,6 +101,8 @@ var ModelRatio = map[string]float64{
 | 
			
		||||
	"claude-3-7-sonnet-20250219": 3.0 / 1000 * USD,
 | 
			
		||||
	"claude-3-7-sonnet-latest":   3.0 / 1000 * USD,
 | 
			
		||||
	"claude-3-opus-20240229":     15.0 / 1000 * USD,
 | 
			
		||||
	"claude-3-7-sonnet-20250219": 3.0 / 1000 * USD,
 | 
			
		||||
	"claude-3-7-sonnet-latest":   3.0 / 1000 * USD,
 | 
			
		||||
	// https://cloud.baidu.com/doc/WENXINWORKSHOP/s/hlrk4akp7
 | 
			
		||||
	"ERNIE-4.0-8K":       0.120 * RMB,
 | 
			
		||||
	"ERNIE-3.5-8K":       0.012 * RMB,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user