{"repo": "baoziwu2/quizonlytest", "files": {"coai-main/app.backup/src/admin/channel.ts": {"acf3b9577f0bd877d38462ff07f6fa81eff8077c": {"t": 1785768134.9296412, "n": 9854, "h": "3d7fdefeac2230ba", "c": "import { getUniqueList } from \"@/utils/base.ts\";\nimport {\n AnonymousType,\n BasicType,\n NormalType,\n ProType,\n StandardType,\n} from \"@/utils/groups.ts\";\n\nexport type Channel = {\n id: number;\n name: string;\n type: string;\n models: string[];\n priority: number;\n weight: number;\n retry: number;\n secret: string;\n endpoint: string;\n mapper: string;\n state: boolean;\n group?: string[];\n proxy?: {\n proxy: string;\n proxy_type: number;\n username: string;\n password: string;\n };\n};\n\nexport enum proxyType {\n NoneProxy = 0,\n HttpProxy = 1,\n HttpsProxy = 2,\n Socks5Proxy = 3,\n}\n\nexport const ProxyTypes: Record = {\n [proxyType.NoneProxy]: \"None Proxy\",\n [proxyType.HttpProxy]: \"HTTP Proxy\",\n [proxyType.HttpsProxy]: \"HTTPS Proxy\",\n [proxyType.Socks5Proxy]: \"SOCKS5 Proxy\",\n};\n\nexport type ChannelInfo = {\n description?: string;\n endpoint: string;\n format: string;\n models: string[];\n};\n\nexport const ChannelTypes: Record = {\n openai: \"OpenAI\",\n azure: \"Azure OpenAI\",\n claude: \"Anthropic Claude\",\n palm: \"Google Gemini\",\n midjourney: \"Midjourney Proxy\",\n sparkdesk: \"讯飞星火 SparkDesk\",\n chatglm: \"智谱清言 ChatGLM\",\n moonshot: \"月之暗面 Moonshot\",\n qwen: \"通义千问 TongYi\",\n hunyuan: \"腾讯混元 Hunyuan\",\n zhinao: \"360智脑 360GLM\",\n baichuan: \"百川大模型 BaichuanAI\",\n skylark: \"云雀大模型 SkylarkLLM\",\n groq: \"Groq Cloud\",\n bing: \"New Bing\",\n slack: \"Slack Claude\",\n deepseek: \"深度求索 DeepSeek\",\n dify: \"Dify\",\n coze: \"扣子 Coze\",\n};\n\nexport const ShortChannelTypes: Record = {\n openai: \"OpenAI\",\n azure: \"Azure\",\n claude: \"Claude\",\n palm: \"Gemini\",\n midjourney: \"Midjourney\",\n sparkdesk: \"讯飞星火\",\n chatglm: \"ChatGLM\",\n moonshot: \"Moonshot\",\n qwen: \"通义千问\",\n hunyuan: \"腾讯混元\",\n zhinao: \"360 智脑\",\n baichuan: \"百川 AI\",\n skylark: \"火山方舟\",\n groq: \"Groq\",\n bing: \"Bing\",\n slack: \"Slack\",\n deepseek: \"深度求索\",\n dify: \"Dify\",\n coze: \"Coze\",\n};\n\nexport const ChannelInfos: Record = {\n openai: {\n endpoint: \"https://api.openai.com\",\n format: \"\",\n models: [\n \"gpt-3.5-turbo\",\n \"gpt-3.5-turbo-instruct\",\n \"gpt-3.5-turbo-0613\",\n \"gpt-3.5-turbo-0301\",\n \"gpt-3.5-turbo-1106\",\n \"gpt-3.5-turbo-0125\",\n \"gpt-3.5-turbo-16k\",\n \"gpt-3.5-turbo-16k-0613\",\n \"gpt-3.5-turbo-16k-0301\",\n \"gpt-4\",\n \"gpt-4-0314\",\n \"gpt-4-0613\",\n \"gpt-4-1106-preview\",\n \"gpt-4-0125-preview\",\n \"gpt-4-turbo-preview\",\n \"gpt-4-vision-preview\",\n \"gpt-4-1106-vision-preview\",\n \"gpt-4-turbo\",\n \"gpt-4-turbo-2024-04-09\",\n \"gpt-4-32k\",\n \"gpt-4-32k-0314\",\n \"gpt-4-32k-0613\",\n \"gpt-4o\",\n \"gpt-4o-2024-05-13\",\n \"gpt-4o-2024-08-06\",\n \"gpt-4o-mini\",\n \"gpt-4o-mini-2024-07-18\",\n \"chatgpt-4o-latest\",\n \"dalle\",\n \"dall-e-2\",\n \"dall-e-3\",\n ],\n },\n azure: {\n endpoint: \"2023-12-01-preview\",\n format: \"|\",\n description:\n \"> Azure 密钥 API Key 1 和 API Key 2 任填一个即可,密钥格式为 **api-key|api-endpoint**, api-endpoint 为 Azure 的 **API 端点**。\\n\" +\n \"> 接入点填 **API Version**,如 2023-12-01-preview。\\n\" +\n \"Azure 模型名称忽略点号等问题内部已经进行适配,无需额外任何设置。\",\n models: [\n \"gpt-3.5-turbo\",\n \"gpt-3.5-turbo-instruct\",\n \"gpt-3.5-turbo-0613\",\n \"gpt-3.5-turbo-0301\",\n \"gpt-3.5-turbo-1106\",\n \"gpt-3.5-turbo-0125\",\n \"gpt-3.5-turbo-16k\",\n \"gpt-3.5-turbo-16k-0613\",\n \"gpt-3.5-turbo-16k-0301\",\n \"gpt-4\",\n \"gpt-4-0314\",\n \"gpt-4-0613\",\n \"gpt-4-1106-preview\",\n \"gpt-4-0125-preview\",\n \"gpt-4-turbo-preview\",\n \"gpt-4-vision-preview\",\n \"gpt-4-1106-vision-preview\",\n \"gpt-4-turbo\",\n \"gpt-4-turbo-2024-04-09\",\n \"gpt-4-32k\",\n \"gpt-4-32k-0314\",\n \"gpt-4-32k-0613\",\n \"dalle\",\n \"dall-e-2\",\n \"dall-e-3\",\n ],\n },\n claude: {\n endpoint: \"https://api.anthropic.com\",\n format: \"\",\n description:\n \"> Anthropic Claude 密钥即为 **x-api-key**,Anthropic 对请求 IP 地域有限制,可能出现 **Request not allowed** 的错误,请尝试更换 IP 或者使用代理。\\n\",\n models: [\n \"claude-instant-1.2\",\n \"claude-2\",\n \"claude-2.1\",\n \"claude-3-opus-20240229\",\n \"claude-3-sonnet-20240229\",\n \"claude-3-haiku-20240307\",\n ],\n },\n slack: {\n endpoint: \"your-channel\",\n format: \"|\",\n models: [\"claude-slack\"],\n description:\n \"> **注意!当前个人免费版 Slack 已不支持 Claude 调用。** \\n\" +\n \"> 密钥请填写 bot-id|xoxp-token,其中 bot-id 为 Slack Bot 的 ID,xoxp-token 为 Slack Bot 的 xoxp-token \\n\" +\n \"> 接入点填写你的 Slack Channel 名称,如 *chatnio* \\n\" +\n \"> 详情参考 [claude-api](https://github.com/bincooo/claude-api) \\n\",\n },\n sparkdesk: {\n endpoint: \"wss://spark-api.xf-yun.com\",\n format: \"||\",\n models: [\n \"spark-desk-lite\",\n \"spark-desk-pro\",\n \"spark-desk-pro-128k\",\n \"spark-desk-max\",\n \"spark-desk-max-32k\",\n \"spark-desk-4.0-ultra\",\n ],\n },\n chatglm: {\n endpoint: \"https://open.bigmodel.cn\",\n format: \"\",\n models: [\"glm-4\", \"glm-4v\", \"glm-3-turbo\"],\n description:\n \"> 智谱 ChatGLM 密钥格式为 **api-key**,接入点填写 *https://open.bigmodel.cn* \\n\",\n },\n qwen: {\n endpoint: \"https://dashscope.aliyuncs.com\",\n format: \"\",\n models: [\"qwen-turbo\", \"qwen-plus\", \"qwen-turbo-net\", \"qwen-plus-net\"],\n },\n hunyuan: {\n endpoint: \"https://hunyuan.cloud.tencent.com\",\n format: \"||\",\n models: [\"hunyuan\"],\n // endpoint\n },\n zhinao: {\n endpoint: \"https://api.360.cn\",\n format: \"\",\n models: [\"360-gpt-v9\"],\n },\n baichuan: {\n endpoint: \"https://api.baichuan-ai.com\",\n format: \"\",\n models: [\"baichuan-53b\"],\n },\n skylark: {\n endpoint: \"https://ark.cn-beijing.volces.com/api/v3\",\n format: \"|\",\n models: [\n \"skylark-lite-public\",\n \"skylark-plus-public\",\n \"skylark-pro-public\",\n \"skylark-chat\",\n ],\n description:\n \"> Skylark 格式密钥请填写获取到的 ak|sk 或 apikey \\n\" +\n \"> 接入点填写生成的接入点,如 *https://ark.cn-beijing.volces.com/api/v3* \\n\" +\n \"> Skylark API 的地域字段无需手动填写,系统会自动根据接入点获取 \\n\",\n },\n bing: {\n endpoint: \"wss://your.bing.service\",\n format: \"\",\n models: [\"bing-creative\", \"bing-balanced\", \"bing-precise\"],\n description:\n \"> New Bing 服务搭建详情请参考 [chatnio-bing-service](https://github.com/Deeptrain-Community/chatnio-bing-service) \\n \" +\n \"> bing2api (如 [bingo](https://github.com/weaigc/bingo)) 可直接使用 **OpenAI** 格式而非 **New Bing** 格式 \\n \" +\n \"> 接入点填写你部署的站点即可,如 *http://localhost:8765* \",\n },\n palm: {\n endpoint: \"https://generativelanguage.googleapis.com\",\n format: \"\",\n models: [\n \"chat-bison-001\",\n \"gemini-pro\",\n \"gemini-pro-vision\",\n \"gemini-1.5-pro-latest\",\n \"gemini-1.5-flash-latest\",\n ],\n description:\n \"> Google Gemini / PaLM2 密钥格式为 **api-key**,接入点填写 *https://generativelanguage.googleapis.com* 或其反代地址 \\n\" +\n \"> Google 对请求 IP 地域有限制,可能出现 **User Location Is Not Supported** 的错误,可以看运气通过反代解决。 \\n\" +\n \"> Gemini Pro 的返回结果一次性而非流式(即使 `streamGenerateContent` 接口也为假流式),系统内部做了平滑伪流式处理,但仍然无法从根本解决 Gemini Pro 自身假流式的特性。\\n\",\n },\n midjourney: {\n endpoint: \"https://your.midjourney.proxy\",\n format: \"|\",\n models: [\"midjourney\", \"midjourney-fast\", \"midjourney-turbo\"],\n description:\n \"> 请参考 [midjourney-proxy](https://github.com/novicezk/midjourney-proxy) 项目填入参数,可设置白名单 *white-list* 以限制回调 IP \\n\" +\n \"> 密钥举例: password|localhost,127.0.0.1,196.128.0.31\\n\" +\n \"> 密钥即为 *mj-api-secret* (如果没有设置 secret 请填 `null` ) \\n\" +\n \"> 白名单即为 *white-list*(如果没有回调 IP 白名单默认接收所有 IP 的回调,不需要加 | 以及后面的内容) \\n\" +\n \"> 接入点填写你的 Midjourney Proxy 的部署地址,如 *http://localhost:8080*, *https://example.com* \\n\" +\n \"> 注意:**请在系统设置中设置后端的公网 IP / 域名,否则无法接收回调报错 please provide available notify url** \\n\",\n },\n moonshot: {\n endpoint: \"https://api.moonshot.cn\",\n format: \"\",\n models: [\"moonshot-v1-8k\", \"moonshot-v1-32k\", \"moonshot-v1-128k\"],\n },\n groq: {\n endpoint: \"https://api.groq.com/openai\",\n format: \"\",\n models: [\"llama2-70b-4096\", \"mixtral-8x7b-32768\", \"gemma-7b-it\"],\n },\n dify: {\n endpoint: \"https://api.dify.ai/v1\",\n format: \"\",\n models: [\"\"],\n description:\n \"> 由于 Dify 平台一个 Key 对应一个 CHATFLOW (模型),所以模型名称仅在用户调用本系统时用于标识用户调用的对象,不代表调用 Dify 平台 CHATFLOW 时被调用 CHATFLOW 的名称 \\n\" +\n \"> 因此,您需要为每一个 Dify 平台的 CHATFLOW 分别创建渠道 \\n\" +\n \"> 如果需要让系统自动适配 Dify 平台的图标(商业版 / Pro),请将模型名称填写为 **dify** 开头的模型,如 **dify-chat** \\n\",\n },\n coze: {\n endpoint: \"https://api.coze.cn\",\n format: \"\",\n models: [\"\"],\n description:\n \"> 扣子 Coze 的模型名称即为 Coze 平台的 **bot_id** \\n\" +\n \"> 进入智能体的开发页面,开发页面 URL 中 bot 参数后的数字就是智能体 ID \\n\" +\n \"> 例如 [https://www.coze.cn/space/341****/bot/73428668*****](https://www.coze.cn/space/341****/bot/73428668*****),智能体 ID 为 73428668***** \\n\" +\n \"> 确保当前使用的访问密钥已被授予智能体所属空间的 chat 权限 \\n\" +\n \"> 如果需要让系统自动适配扣子 Coze 平台的图标(商业版 / Pro),请在 **模型映射** 中将 **bot_id** 映射为 **coze** 开头的模型,如 coze-chat>73428668***** \\n\",\n },\n};\n\nexport const defaultChannelModels: string[] = getUniqueList(\n Object.values(ChannelInfos).flatMap((info) => info.models),\n);\n\nexport const channelGroups: string[] = [\n AnonymousType,\n NormalType,\n BasicType,\n StandardType,\n ProType,\n];\n\nexport function getChannelInfo(type?: string): ChannelInfo {\n if (type && type in ChannelInfos) return ChannelInfos[type];\n return ChannelInfos.openai;\n}\n\nexport function getChannelType(type?: string): string {\n if (type && type in ChannelTypes) return ChannelTypes[type];\n return ChannelTypes.openai;\n}\n\nexport function getShortChannelType(type?: string): string {\n if (type && type in ShortChannelTypes) return ShortChannelTypes[type];\n return ShortChannelTypes.openai;\n}\n"}}, "coai-main/app/src/admin/channel.ts": {"acf3b9577f0bd877d38462ff07f6fa81eff8077c": {"t": 1785768135.6947248, "n": 8842, "h": "61c584c333873053", "c": "import { getUniqueList } from \"@/utils/base.ts\";\nimport {\n AnonymousType,\n BasicType,\n NormalType,\n ProType,\n StandardType,\n} from \"@/utils/groups.ts\";\n\nexport type Channel = {\n id: number;\n name: string;\n type: string;\n models: string[];\n priority: number;\n weight: number;\n retry: number;\n secret: string;\n endpoint: string;\n mapper: string;\n state: boolean;\n group?: string[];\n proxy?: {\n proxy: string;\n proxy_type: number;\n username: string;\n password: string;\n };\n};\n\nexport enum proxyType {\n NoneProxy = 0,\n HttpProxy = 1,\n HttpsProxy = 2,\n Socks5Proxy = 3,\n}\n\nexport const ProxyTypes: Record = {\n [proxyType.NoneProxy]: \"None Proxy\",\n [proxyType.HttpProxy]: \"HTTP Proxy\",\n [proxyType.HttpsProxy]: \"HTTPS Proxy\",\n [proxyType.Socks5Proxy]: \"SOCKS5 Proxy\",\n};\n\nexport type ChannelInfo = {\n description?: string;\n endpoint: string;\n format: string;\n models: string[];\n};\n\nexport const ChannelTypes: Record = {\n openai: \"OpenAI\",\n azure: \"Azure OpenAI\",\n claude: \"Anthropic Claude\",\n palm: \"Google Gemini\",\n midjourney: \"Midjourney Proxy\",\n sparkdesk: \"讯飞星火 SparkDesk\",\n chatglm: \"智谱清言 ChatGLM\",\n moonshot: \"月之暗面 Moonshot\",\n qwen: \"通义千问 TongYi\",\n hunyuan: \"腾讯混元 Hunyuan\",\n zhinao: \"360智脑 360GLM\",\n baichuan: \"百川大模型 BaichuanAI\",\n skylark: \"云雀大模型 SkylarkLLM\",\n groq: \"Groq Cloud\",\n bing: \"New Bing\",\n slack: \"Slack Claude\",\n};\n\nexport const ShortChannelTypes: Record = {\n openai: \"OpenAI\",\n azure: \"Azure\",\n claude: \"Claude\",\n palm: \"Gemini\",\n midjourney: \"Midjourney\",\n sparkdesk: \"讯飞星火\",\n chatglm: \"ChatGLM\",\n moonshot: \"Moonshot\",\n qwen: \"通义千问\",\n hunyuan: \"腾讯混元\",\n zhinao: \"360 智脑\",\n baichuan: \"百川 AI\",\n skylark: \"火山方舟\",\n groq: \"Groq\",\n bing: \"Bing\",\n slack: \"Slack\",\n};\n\nexport const ChannelInfos: Record = {\n openai: {\n endpoint: \"https://api.openai.com\",\n format: \"\",\n models: [\n \"gpt-3.5-turbo\",\n \"gpt-3.5-turbo-instruct\",\n \"gpt-3.5-turbo-0613\",\n \"gpt-3.5-turbo-0301\",\n \"gpt-3.5-turbo-1106\",\n \"gpt-3.5-turbo-0125\",\n \"gpt-3.5-turbo-16k\",\n \"gpt-3.5-turbo-16k-0613\",\n \"gpt-3.5-turbo-16k-0301\",\n \"gpt-4\",\n \"gpt-4-0314\",\n \"gpt-4-0613\",\n \"gpt-4-1106-preview\",\n \"gpt-4-0125-preview\",\n \"gpt-4-turbo-preview\",\n \"gpt-4-vision-preview\",\n \"gpt-4-1106-vision-preview\",\n \"gpt-4-turbo\",\n \"gpt-4-turbo-2024-04-09\",\n \"gpt-4-32k\",\n \"gpt-4-32k-0314\",\n \"gpt-4-32k-0613\",\n \"gpt-4o\",\n \"gpt-4o-2024-05-13\",\n \"gpt-4o-2024-08-06\",\n \"gpt-4o-mini\",\n \"gpt-4o-mini-2024-07-18\",\n \"chatgpt-4o-latest\",\n \"dalle\",\n \"dall-e-2\",\n \"dall-e-3\",\n ],\n },\n azure: {\n endpoint: \"2023-12-01-preview\",\n format: \"|\",\n description:\n \"> Azure 密钥 API Key 1 和 API Key 2 任填一个即可,密钥格式为 **api-key|api-endpoint**, api-endpoint 为 Azure 的 **API 端点**。\\n\" +\n \"> 接入点填 **API Version**,如 2023-12-01-preview。\\n\" +\n \"Azure 模型名称忽略点号等问题内部已经进行适配,无需额外任何设置。\",\n models: [\n \"gpt-3.5-turbo\",\n \"gpt-3.5-turbo-instruct\",\n \"gpt-3.5-turbo-0613\",\n \"gpt-3.5-turbo-0301\",\n \"gpt-3.5-turbo-1106\",\n \"gpt-3.5-turbo-0125\",\n \"gpt-3.5-turbo-16k\",\n \"gpt-3.5-turbo-16k-0613\",\n \"gpt-3.5-turbo-16k-0301\",\n \"gpt-4\",\n \"gpt-4-0314\",\n \"gpt-4-0613\",\n \"gpt-4-1106-preview\",\n \"gpt-4-0125-preview\",\n \"gpt-4-turbo-preview\",\n \"gpt-4-vision-preview\",\n \"gpt-4-1106-vision-preview\",\n \"gpt-4-turbo\",\n \"gpt-4-turbo-2024-04-09\",\n \"gpt-4-32k\",\n \"gpt-4-32k-0314\",\n \"gpt-4-32k-0613\",\n \"dalle\",\n \"dall-e-2\",\n \"dall-e-3\",\n ],\n },\n claude: {\n endpoint: \"https://api.anthropic.com\",\n format: \"\",\n description:\n \"> Anthropic Claude 密钥即为 **x-api-key**,Anthropic 对请求 IP 地域有限制,可能出现 **Request not allowed** 的错误,请尝试更换 IP 或者使用代理。\\n\",\n models: [\n \"claude-instant-1.2\",\n \"claude-2\",\n \"claude-2.1\",\n \"claude-3-opus-20240229\",\n \"claude-3-sonnet-20240229\",\n \"claude-3-haiku-20240307\",\n ],\n },\n slack: {\n endpoint: \"your-channel\",\n format: \"|\",\n models: [\"claude-slack\"],\n description:\n \"> **注意!当前个人免费版 Slack 已不支持 Claude 调用。** \\n\" +\n \"> 密钥请填写 bot-id|xoxp-token,其中 bot-id 为 Slack Bot 的 ID,xoxp-token 为 Slack Bot 的 xoxp-token \\n\" +\n \"> 接入点填写你的 Slack Channel 名称,如 *quizonly* \\n\" +\n \"> 详情参考 [claude-api](https://github.com/bincooo/claude-api) \\n\",\n },\n sparkdesk: {\n endpoint: \"wss://spark-api.xf-yun.com\",\n format: \"||\",\n models: [\n \"spark-desk-lite\",\n \"spark-desk-pro\",\n \"spark-desk-pro-128k\",\n \"spark-desk-max\",\n \"spark-desk-max-32k\",\n \"spark-desk-4.0-ultra\",\n ],\n },\n chatglm: {\n endpoint: \"https://open.bigmodel.cn\",\n format: \"\",\n models: [\"glm-4\", \"glm-4v\", \"glm-3-turbo\"],\n description:\n \"> 智谱 ChatGLM 密钥格式为 **api-key**,接入点填写 *https://open.bigmodel.cn* \\n\",\n },\n qwen: {\n endpoint: \"https://dashscope.aliyuncs.com\",\n format: \"\",\n models: [\"qwen-turbo\", \"qwen-plus\", \"qwen-turbo-net\", \"qwen-plus-net\"],\n },\n hunyuan: {\n endpoint: \"https://hunyuan.cloud.tencent.com\",\n format: \"||\",\n models: [\"hunyuan\"],\n // endpoint\n },\n zhinao: {\n endpoint: \"https://api.360.cn\",\n format: \"\",\n models: [\"360-gpt-v9\"],\n },\n baichuan: {\n endpoint: \"https://api.baichuan-ai.com\",\n format: \"\",\n models: [\"baichuan-53b\"],\n },\n skylark: {\n endpoint: \"https://maas-api.ml-platform-cn-beijing.volces.com\",\n format: \"|\",\n models: [\n \"skylark-lite-public\",\n \"skylark-plus-public\",\n \"skylark-pro-public\",\n \"skylark-chat\",\n ],\n description:\n \"> Skylark 格式密钥请填写获取到的 ak|sk \\n\" +\n \"> 接入点填写生成的接入点,如 *https://maas-api.ml-platform-cn-beijing.volces.com* \\n\" +\n \"> Skylark API 的地域字段无需手动填写,系统会自动根据接入点获取 \\n\",\n },\n bing: {\n endpoint: \"wss://your.bing.service\",\n format: \"\",\n models: [\"bing-creative\", \"bing-balanced\", \"bing-precise\"],\n description:\n \"> New Bing 服务搭建详情请参考 [quizonly-bing-service](https://github.com/Deeptrain-Community/quizonly-bing-service) \\n \" +\n \"> bing2api (如 [bingo](https://github.com/weaigc/bingo)) 可直接使用 **OpenAI** 格式而非 **New Bing** 格式 \\n \" +\n \"> 接入点填写你部署的站点即可,如 *http://localhost:8765* \",\n },\n palm: {\n endpoint: \"https://generativelanguage.googleapis.com\",\n format: \"\",\n models: [\n \"chat-bison-001\",\n \"gemini-pro\",\n \"gemini-pro-vision\",\n \"gemini-1.5-pro-latest\",\n \"gemini-1.5-flash-latest\",\n ],\n description:\n \"> Google Gemini / PaLM2 密钥格式为 **api-key**,接入点填写 *https://generativelanguage.googleapis.com* 或其反代地址 \\n\" +\n \"> Google 对请求 IP 地域有限制,可能出现 **User Location Is Not Supported** 的错误,可以看运气通过反代解决。 \\n\" +\n \"> Gemini Pro 的返回结果一次性而非流式(即使 `streamGenerateContent` 接口也为假流式),系统内部做了平滑伪流式处理,但仍然无法从根本解决 Gemini Pro 自身假流式的特性。\\n\",\n },\n midjourney: {\n endpoint: \"https://your.midjourney.proxy\",\n format: \"|\",\n models: [\"midjourney\", \"midjourney-fast\", \"midjourney-turbo\"],\n description:\n \"> 请参考 [midjourney-proxy](https://github.com/novicezk/midjourney-proxy) 项目填入参数,可设置白名单 *white-list* 以限制回调 IP \\n\" +\n \"> 密钥举例: password|localhost,127.0.0.1,196.128.0.31\\n\" +\n \"> 密钥即为 *mj-api-secret* (如果没有设置 secret 请填 `null` ) \\n\" +\n \"> 白名单即为 *white-list*(如果没有回调 IP 白名单默认接收所有 IP 的回调,不需要加 | 以及后面的内容) \\n\" +\n \"> 接入点填写你的 Midjourney Proxy 的部署地址,如 *http://localhost:8080*, *https://example.com* \\n\" +\n \"> 注意:**请在系统设置中设置后端的公网 IP / 域名,否则无法接收回调报错 please provide available notify url** \\n\",\n },\n moonshot: {\n endpoint: \"https://api.moonshot.cn\",\n format: \"\",\n models: [\"moonshot-v1-8k\", \"moonshot-v1-32k\", \"moonshot-v1-128k\"],\n },\n groq: {\n endpoint: \"https://api.groq.com/openai\",\n format: \"\",\n models: [\"llama2-70b-4096\", \"mixtral-8x7b-32768\", \"gemma-7b-it\"],\n },\n};\n\nexport const defaultChannelModels: string[] = getUniqueList(\n Object.values(ChannelInfos).flatMap((info) => info.models),\n);\n\nexport const channelGroups: string[] = [\n AnonymousType,\n NormalType,\n BasicType,\n StandardType,\n ProType,\n];\n\nexport function getChannelInfo(type?: string): ChannelInfo {\n if (type && type in ChannelInfos) return ChannelInfos[type];\n return ChannelInfos.openai;\n}\n\nexport function getChannelType(type?: string): string {\n if (type && type in ChannelTypes) return ChannelTypes[type];\n return ChannelTypes.openai;\n}\n\nexport function getShortChannelType(type?: string): string {\n if (type && type in ShortChannelTypes) return ShortChannelTypes[type];\n return ShortChannelTypes.openai;\n}\n"}}}}