Просмотр исходного кода

Merge pull request #137 from MapleEve/main

feat: support 01.AI
Calcium-Ion 1 год назад
Родитель
Сommit
a500097b36

+ 1 - 0
README.md

@@ -55,6 +55,7 @@
 3. Anthropic Claude 3 (claude-3-opus-20240229, claude-3-sonnet-20240229)
 4. [Ollama](https://github.com/ollama/ollama?tab=readme-ov-file),添加渠道时,密钥可以随便填写,默认的请求地址是[http://localhost:11434](http://localhost:11434),如果需要修改请在渠道中修改
 5. [Midjourney-Proxy(Plus)](https://github.com/novicezk/midjourney-proxy)接口,[对接文档](Midjourney.md)
+6. [零一万物](https://platform.lingyiwanwu.com/)
 
 您可以在渠道中添加自定义模型gpt-4-gizmo-*,此模型并非OpenAI官方模型,而是第三方模型,使用官方key无法调用。
 

+ 5 - 0
common/constants.go

@@ -212,6 +212,7 @@ const (
 	ChannelTypeMoonshot       = 25
 	ChannelTypeZhipu_v4       = 26
 	ChannelTypePerplexity     = 27
+	ChannelTypeLingYiWanWu    = 31
 )
 
 var ChannelBaseURLs = []string{
@@ -243,4 +244,8 @@ var ChannelBaseURLs = []string{
 	"https://api.moonshot.cn",                   //25
 	"https://open.bigmodel.cn",                  //26
 	"https://api.perplexity.ai",                 //27
+	"",                                          //28
+	"",                                          //29
+	"",                                          //30
+	"https://api.lingyiwanwu.com",               //31
 }

+ 5 - 0
common/model-ratio.go

@@ -93,6 +93,11 @@ var DefaultModelRatio = map[string]float64{
 	"embedding_s1_v1":           0.0715, // ¥0.001 / 1k tokens
 	"semantic_similarity_s1_v1": 0.0715, // ¥0.001 / 1k tokens
 	"hunyuan":                   7.143,  // ¥0.1 / 1k tokens  // https://cloud.tencent.com/document/product/1729/97731#e0e6be58-60c8-469f-bdeb-6c264ce3b4d0
+	// https://platform.lingyiwanwu.com/docs#-计费单元
+	// 已经按照 7.2 来换算美元价格
+	"yi-34b-chat-0205": 0.018,
+	"yi-34b-chat-200k": 0.0864,
+	"yi-vl-plus":       0.0432,
 }
 
 var DefaultModelPrice = map[string]float64{

+ 12 - 0
controller/model.go

@@ -10,6 +10,7 @@ import (
 	"one-api/relay"
 	"one-api/relay/channel/ai360"
 	"one-api/relay/channel/moonshot"
+	"one-api/relay/channel/lingyiwanwu"
 	relayconstant "one-api/relay/constant"
 )
 
@@ -101,6 +102,17 @@ func init() {
 			Parent:     nil,
 		})
 	}
+	for _, modelName := range lingyiwanwu.ModelList {
+		openAIModels = append(openAIModels, OpenAIModels{
+			Id:         modelName,
+			Object:     "model",
+			Created:    1626777600,
+			OwnedBy:    "lingyiwanwu",
+			Permission: permission,
+			Root:       modelName,
+			Parent:     nil,
+		})
+	}
 	for modelName, _ := range constant.MidjourneyModel2Action {
 		openAIModels = append(openAIModels, OpenAIModels{
 			Id:         modelName,

+ 9 - 0
relay/channel/lingyiwanwu/constrants.go

@@ -0,0 +1,9 @@
+package lingyiwanwu
+
+// https://platform.lingyiwanwu.com/docs
+
+var ModelList = []string{
+	"yi-34b-chat-0205",
+	"yi-34b-chat-200k",
+	"yi-vl-plus",
+}

+ 3 - 0
relay/channel/openai/adaptor.go

@@ -11,6 +11,7 @@ import (
 	"one-api/relay/channel"
 	"one-api/relay/channel/ai360"
 	"one-api/relay/channel/moonshot"
+	"one-api/relay/channel/lingyiwanwu"
 	relaycommon "one-api/relay/common"
 	"one-api/service"
 	"strings"
@@ -88,6 +89,8 @@ func (a *Adaptor) GetModelList() []string {
 		return ai360.ModelList
 	case common.ChannelTypeMoonshot:
 		return moonshot.ModelList
+	case common.ChannelTypeLingYiWanWu:
+		return lingyiwanwu.ModelList
 	default:
 		return ModelList
 	}

+ 1 - 0
web/src/constants/channel.constants.js

@@ -15,6 +15,7 @@ export const CHANNEL_OPTIONS = [
     {key: 16, text: 'Moonshot', value: 25, color: 'green', label: 'Moonshot'},
     {key: 19, text: '360 智脑', value: 19, color: 'blue', label: '360 智脑'},
     {key: 23, text: '腾讯混元', value: 23, color: 'teal', label: '腾讯混元'},
+    {key: 31, text: '零一万物', value: 31, color: 'green', label: '零一万物'},
     {key: 8, text: '自定义渠道', value: 8, color: 'pink', label: '自定义渠道'},
     {key: 22, text: '知识库:FastGPT', value: 22, color: 'blue', label: '知识库:FastGPT'},
     {key: 21, text: '知识库:AI Proxy', value: 21, color: 'purple', label: '知识库:AI Proxy'},

+ 3 - 0
web/src/pages/Channel/EditChannel.js

@@ -95,6 +95,9 @@ const EditChannel = (props) => {
                 case 26:
                     localModels = ['glm-4', 'glm-4v', 'glm-3-turbo'];
                     break;
+                case 31:
+                    localModels = ['yi-34b-chat-0205', 'yi-34b-chat-200k', 'yi-vl-plus'];
+                    break;
                 case 2:
                     localModels = ['mj_imagine', 'mj_variation', 'mj_reroll', 'mj_blend', 'mj_upscale', 'mj_describe'];
                     break;