Browse Source

Update 'README.md'

天问 1 year ago
parent
commit
33ce2954b5
1 changed files with 49 additions and 3 deletions
  1. 49 3
      README.md

+ 49 - 3
README.md

@@ -139,11 +139,57 @@ def schedule_news():
 
 
 ### 阅读文档
 ### 阅读文档
 
 
-比如发送一个url链接,先获取url内容,转换为llama-index向量,发送到openai:
+比如发送一个url链接,先获取url内容,转换为 llama-index 向量,发送到openai。
+
+比如用户发送一个pdf,并@bot后触发机器人发送消息到api服务器,先调用pyPDF2解析pdf为字符串,index 向量化,发送到openai。
+
+用户发送消息,会调用
+```
+@slack_app.event(event="message", middleware=[bot_messages])
+def log_message(logger, event, say):
+    try:
+        if is_premium_user(event["user"]):
+            bot_process(event, say, logger)
+```
+这里使用的是slack sdk设置一个监听器,接受 slack消息交由 bot_messages 函数处理:
+```
+def bot_process(event, say, logger):
+    if event.get('files'):
+    
+```
+如果发送的是文件,检测文件后缀为pdf,文件大小,然后再下载文件:
+```
+            response = requests.get(url_private, headers={"Authorization": "Bearer " + slack_app.client.token})
+
+```
 
 
 
 
-发送slack消息:
+
+### 语音对话
+
+如果发送的是语音(filetype_voice_extension_allowed = ['m4a', 'webm', 'mp3', 'wav']),检测文件后缀为pdf,文件大小,然后再下载文件:
 
 
 ```
 ```
 
 
-```
+                    voicemessage = get_text_from_whisper(file_md5_name)
+```
+
+flask 添加 handler 消息处理:
+
+```
+@app.route("/slack/events", methods=["POST"])
+def slack_events():
+    return slack_handler.handle(request)
+```
+
+## 总结
+
+可以发现:
+
+1、用户上传一个pdf文件,首先会上传到slack服务器,然后再发送到api服务器,api服务器解析为字符串后,最后发送到openai。所以api服务器的上传带宽需要设置较大,否则并行会卡住。
+
+2、无需数据库,提取词由llama—index保存为json数据。
+
+3、处理时间较久,用户交互中直接回复消息,后续通过slack 再主动发送消息。这个和微信公众号类似,不过公众号太奇葩,只支持客服消息接口主动发送消息。
+
+