Skip to content

Commit c83e559

Browse files
committed
merge: Merge branch 'dev'
2 parents b7425c9 + f8ade3c commit c83e559

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+3393
-1431
lines changed

.dockerignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.git
2+
.env
3+
.DS_Store
4+
.github
5+
.vercel
6+
.wrangler
7+
dist
8+
doc
9+
node_modules
10+
plugins
11+
scripts
12+
wrangler.toml
13+
config.json

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,3 +152,4 @@ out
152152
/wrangler-test.toml
153153
/dist/index.cjs
154154
/dist/index.d.ts
155+
/dist/src

Dockerfile

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
FROM node:alpine as DEV
2-
1+
FROM node:alpine AS build
32
WORKDIR /app
4-
COPY package.json vite.config.ts tsconfig.json ./
5-
COPY src ./src
6-
RUN npm install && npm run build:local
3+
COPY package.json tsconfig.json vite.config.ts ./
4+
RUN npm install
5+
COPY src src
6+
RUN npm run build:local
77

8-
FROM node:alpine as PROD
98

9+
FROM node:alpine AS production
1010
WORKDIR /app
11-
COPY --from=DEV /app/dist/index.js /app/dist/index.js
12-
COPY --from=DEV /app/package.json /app/
13-
RUN npm install --only=production --omit=dev
14-
RUN apk add --no-cache sqlite
11+
COPY package.json ./
12+
RUN npm install --omit=dev
13+
COPY --from=build /app/dist ./dist
1514
EXPOSE 8787
16-
CMD ["npm", "run", "start:dist"]
15+
CMD ["npm", "run", "start:dist"]

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ You can customize the system initialization information so that your debugged pe
2828
- Serverless deployment
2929
- Multi-platform deployment support (Cloudflare Workers, Vercel, Docker[...](doc/en/PLATFORM.md))
3030
- Adaptation to multiple AI service providers (OpenAI, Azure OpenAI, Cloudflare AI, Cohere, Anthropic, Mistral...)
31+
- Switching Models with InlineKeyboards
3132
- Custom commands (can achieve quick switching of models, switching of robot presets)
3233
- Support for multiple Telegram bots
3334
- Streaming output

README_CN.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ ChatGPT-Telegram-Workers
2525
- 无服务器部署
2626
- 多平台部署支持(Cloudflare Workers, Vercel, Docker[...](doc/cn/PLATFORM.md))
2727
- 适配多种AI服务商(OpenAI, Azure OpenAI, Cloudflare AI, Cohere, Anthropic, Mistral...)
28+
- 使用 InlineKeyboards 切换模型
2829
- 自定义指令(可以实现快速切换模型,切换机器人预设)
2930
- 支持多个Telegram机器人
3031
- 流式输出

dist/buildinfo.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js

Lines changed: 793 additions & 394 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

doc/cn/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# 更新日志
22

3+
- v1.10.0
4+
- 使用 InlineKeyboards 切换模型
5+
36
- v1.9.0
47
- 添加插件系统
58

doc/cn/CONFIG.md

Lines changed: 55 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,12 @@ OPENAI_API_BASE,GOOGLE_COMPLETIONS_API,MISTRAL_API_BASE,COHERE_API_BASE,ANTHROPI
8080

8181
### 通用配置
8282

83-
| KEY | 名称 | 默认值 | 描述 |
84-
|--------------------------|-------------|-------------|------------------------------------------------------------------------|
85-
| AI_PROVIDER | AI提供商 | `auto` | 可选值 `auto, openai, azure, workers, gemini, mistral, cohere, anthropic` |
86-
| AI_IMAGE_PROVIDER | AI图片提供商 | `auto` | 可选值 `auto, openai, azure, workers` |
87-
| SYSTEM_INIT_MESSAGE | 全局默认初始化消息 | `你是一个得力的助手` | 根据绑定的语言自动选择默认值 |
88-
| SYSTEM_INIT_MESSAGE_ROLE | 全局默认初始化消息角色 | `system` | |
83+
| KEY | 名称 | 默认值 | 描述 |
84+
|------------------------------|-----------------|-------------|------------------------------------------------------------------------|
85+
| AI_PROVIDER | AI提供商 | `auto` | 可选值 `auto, openai, azure, workers, gemini, mistral, cohere, anthropic` |
86+
| AI_IMAGE_PROVIDER | AI图片提供商 | `auto` | 可选值 `auto, openai, azure, workers` |
87+
| SYSTEM_INIT_MESSAGE | 全局默认初始化消息 | `你是一个得力的助手` | 根据绑定的语言自动选择默认值 |
88+
| ~~SYSTEM_INIT_MESSAGE_ROLE~~ | ~~全局默认初始化消息角色~~ | `system` | 废弃 |
8989

9090
### OpenAI
9191

@@ -95,7 +95,7 @@ OPENAI_API_BASE,GOOGLE_COMPLETIONS_API,MISTRAL_API_BASE,COHERE_API_BASE,ANTHROPI
9595
| OPENAI_CHAT_MODEL | OpenAI的模型名称 | `gpt-4o-mini` |
9696
| OPENAI_API_BASE | OpenAI API BASE | `https://api.openai.com/v1` |
9797
| OPENAI_API_EXTRA_PARAMS | OpenAI API Extra Params | `{}` |
98-
| DALL_E_MODEL | DALL-E的模型名称 | `dall-e-2` |
98+
| DALL_E_MODEL | DALL-E的模型名称 | `dall-e-3` |
9999
| DALL_E_IMAGE_SIZE | DALL-E图片尺寸 | `512x512` |
100100
| DALL_E_IMAGE_QUALITY | DALL-E图片质量 | `standard` |
101101
| DALL_E_IMAGE_STYLE | DALL-E图片风格 | `vivid` |
@@ -106,11 +106,15 @@ OPENAI_API_BASE,GOOGLE_COMPLETIONS_API,MISTRAL_API_BASE,COHERE_API_BASE,ANTHROPI
106106
107107
> AZURE_DALLE_API `https://RESOURCE_NAME.openai.azure.com/openai/deployments/MODEL_NAME/images/generations?api-version=VERSION_NAME`
108108
109-
| KEY | 名称 | 默认值 |
110-
|--------------------------|-------------------------|------------------------------------------------------------|
111-
| AZURE_API_KEY | Azure API Key | `null` |
112-
| AZURE_COMPLETIONS_API | Azure Completions API | `null` |
113-
| AZURE_DALLE_API | Azure DallE API | `null` |
109+
| KEY | 名称 | 默认值 |
110+
|---------------------------|---------------------------|--------------|
111+
| AZURE_API_KEY | Azure API Key | `null` |
112+
| ~~AZURE_COMPLETIONS_API~~ | ~~Azure Completions API~~ | `null` |
113+
| ~~AZURE_DALLE_API~~ | ~~Azure DallE API~~ | `null` |
114+
| AZURE_RESOURCE_NAME | Azure 资源名称 | `null` |
115+
| AZURE_CHAT_MODEL | Azure 对话模型 | `null` |
116+
| AZURE_IMAGE_MODEL | Azure 图片模型 | `null` |
117+
| AZURE_API_VERSION | Azure API 版本号 | `2024-06-01` |
114118

115119

116120
### Workers
@@ -124,13 +128,14 @@ OPENAI_API_BASE,GOOGLE_COMPLETIONS_API,MISTRAL_API_BASE,COHERE_API_BASE,ANTHROPI
124128

125129
### Gemini
126130

127-
cloudflare workers 暂时不支持访问
131+
> cloudflare workers 暂时不支持访问
128132
129-
| KEY | 名称 | 默认值 |
130-
|--------------------------|-------------------------|------------------------------------------------------------|
131-
| GOOGLE_API_KEY | Google Gemini API Key | `null` |
132-
| GOOGLE_COMPLETIONS_API | Google Gemini API | `https://generativelanguage.googleapis.com/v1beta/models/` |
133-
| GOOGLE_COMPLETIONS_MODEL | Google Gemini Model | `gemini-pro` |
133+
| KEY | 名称 | 默认值 |
134+
|----------------------------|----------------------------------|------------------------------------------------------------|
135+
| GOOGLE_API_KEY | Google Gemini API Key | `null` |
136+
| ~~GOOGLE_COMPLETIONS_API~~ | ~~Google Gemini API~~ | `https://generativelanguage.googleapis.com/v1beta/models/` |
137+
| GOOGLE_COMPLETIONS_MODEL | Google Gemini Model | `gemini-pro` |
138+
| GOOGLE_API_BASE | 支持Openai API 格式的 Gemini API Base | `https://generativelanguage.googleapis.com/v1beta` |
134139

135140
### Mistral
136141

@@ -158,19 +163,20 @@ cloudflare workers 暂时不支持访问
158163

159164
## 支持命令
160165

161-
| 命令 | 说明 | 示例 |
162-
|:-----------|:--------------------------|:------------------------------------------------|
163-
| `/help` | 获取命令帮助 | `/help` |
164-
| `/new` | 发起新的对话 | `/new` |
165-
| `/start` | 获取你的ID,并发起新的对话 | `/start` |
166-
| `/img` | 生成一张图片 | `/img 图片描述` |
167-
| `/version` | 获取当前版本号,判断是否需要更新 | `/version` |
168-
| `/setenv` | 设置用户配置, 详情见`用户配置` | `/setenv KEY=VALUE` |
169-
| `/setenvs` | 批量设置用户配置, 详情见`用户配置` | `/setenvs {"KEY1": "VALUE1", "KEY2": "VALUE2"}` |
170-
| `/delenv` | 删除用户配置 | `/delenv KEY` |
171-
| `/system` | 查看当前一些系统信息 | `/system` |
172-
| `/redo` | 修改上一个提问或者换一个回答 | `/redo 修改过的内容` 或者 `/redo` |
173-
| `/echo` | 回显消息,仅开发模式可用 | `/echo` |
166+
| 命令 | 说明 | 示例 |
167+
|:-----------|:--------------------|:------------------------------------------------|
168+
| `/help` | 获取命令帮助 | `/help` |
169+
| `/new` | 发起新的对话 | `/new` |
170+
| `/start` | 获取你的ID,并发起新的对话 | `/start` |
171+
| `/img` | 生成一张图片 | `/img 图片描述` |
172+
| `/version` | 获取当前版本号,判断是否需要更新 | `/version` |
173+
| `/setenv` | 设置用户配置, 详情见`用户配置` | `/setenv KEY=VALUE` |
174+
| `/setenvs` | 批量设置用户配置, 详情见`用户配置` | `/setenvs {"KEY1": "VALUE1", "KEY2": "VALUE2"}` |
175+
| `/delenv` | 删除用户配置 | `/delenv KEY` |
176+
| `/system` | 查看当前一些系统信息 | `/system` |
177+
| `/redo` | 修改上一个提问或者换一个回答 | `/redo 修改过的内容` 或者 `/redo` |
178+
| `/models` | 切换对话模型 | `/models` 后通过内置菜单选择模型 |
179+
| `/echo` | 回显消息,仅开发模式可用 | `/echo` |
174180

175181
## 自定义命令
176182

@@ -223,3 +229,21 @@ COMMAND_DESCRIPTION_cn2en = '将对话内容翻译成英文'
223229
```
224230

225231
如果你想将自定义命令绑定到telegram的菜单中,你可以添加如下环境变量`COMMAND_SCOPE_azure = "all_private_chats,all_group_chats,all_chat_administrators"`,这样插件就会在所有的私聊,群聊和群组中生效。
232+
233+
234+
## 模型列表
235+
236+
支持使用 `/models` 命令获取支持的模型列表,并且通过菜单选择切换。
237+
模型列表支持的配置项的类型为 URL 或者 json 数组。 如果是 URL,会自动请求获取模型列表,如果是 json 数组,会直接使用该数组。
238+
当前支持从URL获取模型列表的AI提供商有 `openai, workers, mistral, cohere`。只支持 json 数组的AI提供商有 `azure, gemini, anthropic`
239+
当支持从URL获取模型列表的AI提供商的模型列表配置项为空时候,会默认根据其 base api 自动拼接获取模型列表的URL。
240+
241+
| AI提供商 | 模型列表配置项 | 默认值 | 自动拼接生成的值 |
242+
|:----------|--------------------------------|-----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
243+
| openai | OPENAI_CHAT_MODELS_LIST | `` | `${OPENAI_API_BASE}/models` |
244+
| workers | WORKERS_CHAT_MODELS_LIST | `` | `https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/models/search?task=Text%20Generation` |
245+
| mistral | MISTRAL_CHAT_MODELS_LIST | `` | `${MISTRAL_API_BASE}/models` |
246+
| cohere | COHERE_CHAT_MODELS_LIST | `` | `https://api.cohere.com/v1/models` |
247+
| azure | AZURE_CHAT_MODELS_LIST | `[]` | |
248+
| gemini | GOOGLE_COMPLETIONS_MODELS_LIST | `["gemini-1.5-flash"]` | |
249+
| anthropic | ANTHROPIC_CHAT_MODELS_LIST | `["claude-3-5-sonnet-latest", "claude-3-5-haiku-latest"]` | |

doc/cn/VERCEL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 使用Vercel部署 (实验性)
22

3-
`/src/adapter/vercel`中提供了示例代码,可以完成Vercel部署,和基础的功能测试。但是无法保证所有功能都能正常工作。
3+
`/src/entry/vercel`中提供了示例代码,可以完成Vercel部署,和基础的功能测试。但是无法保证所有功能都能正常工作。
44

55
### 自动部署
66

doc/en/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Changelog
22

3+
- v1.10.0
4+
- Switching Models with InlineKeyboards
5+
36
- v1.9.0
47
- Add plugin system
58

0 commit comments

Comments
 (0)