Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/baoziwu2_quizonly.json
T

1 line
12 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"repo": "baoziwu2/quizonly", "files": {"coai-main/app/src/admin/channel.ts": {"fdd32101bd06f8d3a3f822202883f07a7e8cad41": {"t": 1785768136.4696991, "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<number, string> = {\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<string, string> = {\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<string, string> = {\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<string, ChannelInfo> = {\n openai: {\n endpoint: \"https://api.openai.com\",\n format: \"<api-key>\",\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: \"<api-key>|<api-endpoint>\",\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: \"<x-api-key>\",\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: \"<bot-id>|<xoxp-token>\",\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: \"<app-id>|<api-secret>|<api-key>\",\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: \"<api-key>\",\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: \"<api-key>\",\n models: [\"qwen-turbo\", \"qwen-plus\", \"qwen-turbo-net\", \"qwen-plus-net\"],\n },\n hunyuan: {\n endpoint: \"https://hunyuan.cloud.tencent.com\",\n format: \"<app-id>|<secret-id>|<secret-key>\",\n models: [\"hunyuan\"],\n // endpoint\n },\n zhinao: {\n endpoint: \"https://api.360.cn\",\n format: \"<api-key>\",\n models: [\"360-gpt-v9\"],\n },\n baichuan: {\n endpoint: \"https://api.baichuan-ai.com\",\n format: \"<api-key>\",\n models: [\"baichuan-53b\"],\n },\n skylark: {\n endpoint: \"https://ark.cn-beijing.volces.com/api/v3\",\n format: \"<access-key>|<secret-key>\",\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: \"<secret>\",\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: \"<api-key>\",\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: \"<mj-api-secret>|<white-list>\",\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: \"<api-key>\",\n models: [\"moonshot-v1-8k\", \"moonshot-v1-32k\", \"moonshot-v1-128k\"],\n },\n groq: {\n endpoint: \"https://api.groq.com/openai\",\n format: \"<api-key>\",\n models: [\"llama2-70b-4096\", \"mixtral-8x7b-32768\", \"gemma-7b-it\"],\n },\n dify: {\n endpoint: \"https://api.dify.ai/v1\",\n format: \"<api-key>\",\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: \"<api-key>\",\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"}}}}