![cover](./docs/c1.png)
![cover2](./docs/c2.png)
![cover3](./docs/c3.png)
![cover4](./docs/c4.png)
![cover4](./docs/c5.png)
![cover4](./docs/c6.png)
## 介绍
该项目基于Azure OpenAI 进行实现
| 功能 | 特点 | 可拓展性 |
| --------------- | ------------------------------------------------------------ | ---------------------------------------------- |
| `Web端聊天页面` | 支持Markdown格式;响应消息呈现打字机效果;可以给模型赋予角色 | 较低 |
| `飞书机器人` | 仅支持文本格式;响应消息集中返回,速度较快; | 较高,可以结合飞书的功能进行许多新的功能拓展。 |
#### 环境变量:
全部参数变量请查看或[这里](#环境变量)
```
后端: /service/.env.example.json
前端: /.env
```
## 待实现路线
✅web端打字机聊天效果
✅ 多会话储存和上下文逻辑
✅飞书指定消息作为上下文
✅对代码等消息类型的格式化美化处理
✅访问权限控制
✅ 数据导入、导出
✅保存消息到本地图片
✅界面多语言
✅界面主题
❎ More...
## 飞书机器人搭建
[飞书开放平台](https://open.feishu.cn/app)
- 在飞书开放平台创建应用,打开`机器人`能力
![cover3](./docs/add_bot.png)
- 订阅`接收消息` 事件,并按需开通权限
![cover3](./docs/sub.png)
- 复制`.env.json.example`为`.env.json`,并填写`app_id` `app_secret` `encryption_key` `verification_token`,这几个字段在你的应用详情页可以找到
![cover3](./docs/appid_secret.png)
![cover3](./docs/encrypt_key_verification_token.png)
- 配置`请求地址`,格式为`http://your_domain:port/feishu`
![cover3](./docs/configure_url.png)
#### 机器人权限开放
应用详情 -> 开发配置 -> 权限管理
```
contact:contact:readonly_as_app
im:chat
im:chat.group_info:readonly
im:chat:readonly
im:message
im:message.group_at_msg
im:message.p2p_msg
im:message.p2p_msg:readonly
im:message:send_as_bot
```
## 前置要求
### Node
`node` 需要 `^16 || ^18 || ^19` 版本(`node >= 14` 需要安装 [fetch polyfill](https://github.com/developit/unfetch#usage-as-a-polyfill)),使用 [nvm](https://github.com/nvm-sh/nvm) 可管理本地多个 `node` 版本
```shell
node -v
```
### PNPM
如果你没有安装过 `pnpm`
```shell
npm install pnpm -g
```
### Python
Python需要3.8以上版本
```shell
python -V
```
## 安装依赖
### 后端
进入文件夹 `/service` 运行以下命令 Linux 系统用`Python3`和`pip3`
```shell
pip install -r requirements.txt
```
### 前端
根目录下运行以下命令
```shell
pnpm bootstrap
```
## 测试环境运行
### 后端服务
配置`/service/main.py`
```python
config = uvicorn.Config("main:app",host='127.0.0.1', port=3002, log_level="info") # host:本地ip,如果是公网ip则设置为‘0.0.0.0’,port:后端服务端口号
```
进入文件夹 `/service` 运行以下命令
```shell
python main.py
```
### 前端网页
根目录下运行以下命令
配置`.env`
```
VITE_APP_API_BASE_URL= http://127.0.0.1:3002/ 对应后端ip和端口
```
在根目录下
```shell
pnpm dev
```
## 环境变量
飞书相关变量:
- `feishu_app_id` 飞书机器人id
- `feishu_app_secret` 飞书机器人密钥
- `feishu_encryption_key` 飞书机器人加密key
- `feishu_verification_token` 飞书机器人身份校验码
Azure openAI相关变量:
- `gpt_app_key` app_key
- `azure_api_base` api_base
- `azure_api_type` api_type
- `azure_api_version` api_version
- `azure_engine` api_engine
通用:
- `gpt_model` :默认:openai-gpt,准备拓展多模型准备的变量
## 打包
#### 前端网页
1、修改根目录下 `.env` 文件中的 `VITE_GLOB_API_URL` 为你的实际后端接口地址
2、根目录下运行以下命令,然后将 `dist` 文件夹内的文件复制到你网站服务的根目录下
[参考信息](https://cn.vitejs.dev/guide/static-deploy.html#building-the-app)
```shell
pnpm build
```
##### Nginx配置
在`nginx.conf`中的**http**内加入以下配置
```
server
{
listen 8081; # 监听8081端口
server_name _;
root /home/ubuntu/ChatBot/dist/; #打包的dist路径
# 防止爬虫抓取
if ($http_user_agent ~* "360Spider|JikeSpider|Spider|spider|bot|Bot|2345Explorer|curl|wget|webZIP|qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|NSPlayer|bingbot")
{
return 403;
}
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
location / {
#解决(直接通过ip+路径访问出错,只能在网页内跳转)问题
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://0.0.0.0:3002/; #后端服务,如果和后端在同个服务器则不用修改,如果不同服务器,则修改为实际ip+端口
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
```
#### 后端服务
1、配置`/service/main.py`
```
config = uvicorn.Config("main:app",host='0.0.0.0', port=3002, log_level="info") # ‘0.0.0.0’运行后,为 服务器公网ip+3002
```
后端服务对外暴露目的是为了让飞书接入,可以通过白名单添加飞书的请求ip [参考文档](https://www.feishu.cn/hc/zh-CN/articles/237645168094-%E9%9B%86%E6%88%90%E5%B9%B3%E5%8F%B0-ip-%E7%99%BD%E5%90%8D%E5%8D%95)
2、后端目前无需打包,在系统中挂起运行即可,进入`/service`,其中log.log为运行日志文件
```shell
nohup python3 main.py >> log.log 2>&1 &
```
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
基于Azure OpenAI的聊天网页,并且服务支持嵌入飞书机器人.zip (122个子文件)
.eslintrc.cjs 58B
tailwind.css 59B
.editorconfig 198B
.env 291B
.eslintignore 26B
.gitattributes 324B
.gitignore 371B
index.html 2KB
favicon.ico 41KB
avatar.jpg 4KB
tailwind.config.js 470B
postcss.config.js 82B
prompts-zh.json 55KB
package.json 2KB
recommend.json 627B
tsconfig.json 588B
.env.example.json 494B
github-markdown.less 25KB
highlight.less 3KB
style.less 929B
global.less 143B
README.md 6KB
.npmrc 31B
c2.png 613KB
c3.png 389KB
sub.png 244KB
configure_url.png 192KB
c4.png 190KB
add_bot.png 172KB
encrypt_key_verification_token.png 167KB
appid_secret.png 162KB
c6.png 101KB
c5.png 86KB
c1.png 77KB
pwa-512x512.png 34KB
pwa-192x192.png 7KB
avatar.png 4KB
feishu.py 14KB
app.py 7KB
azureOpenAI.py 4KB
auth.py 3KB
chatGPT.py 3KB
main.py 2KB
404.svg 28KB
favicon.svg 1KB
index.ts 5KB
ru-RU.ts 5KB
ko-KR.ts 3KB
en-US.ts 3KB
zh-TW.ts 3KB
zh-CN.ts 3KB
index.ts 2KB
index.ts 2KB
index.ts 2KB
vite.config.ts 1KB
index.ts 1KB
chat.d.ts 1KB
useScroll.ts 1KB
index.ts 1KB
index.ts 1KB
useTheme.ts 942B
scrollbarStyle.ts 919B
index.ts 822B
index.ts 794B
helper.ts 757B
useLanguage.ts 726B
permission.ts 700B
useChat.ts 698B
axios.ts 689B
helper.ts 655B
useIconRender.ts 650B
helper.ts 634B
index.ts 593B
index.ts 590B
useUsingContext.ts 579B
helper.ts 516B
copy.ts 502B
index.ts 454B
assets.ts 447B
main.ts 434B
helper.ts 429B
debounce.ts 421B
index.ts 368B
helper.ts 278B
global.d.ts 247B
useBasicLayout.ts 231B
env.d.ts 227B
index.ts 197B
index.ts 189B
index.ts 143B
index.ts 131B
index.ts 65B
index.ts 62B
index.ts 61B
requirements.txt 162B
500.vue 35KB
index.vue 20KB
403.vue 19KB
index.vue 18KB
General.vue 7KB
共 122 条
- 1
- 2
资源评论
妄北y
- 粉丝: 9670
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功