• OKR助理源代码说明


    本文为基于飞书(小程序+机器人+Python服务)实现OKR为核心的团队管理体系中前后端代码的使用说明。

    背景

    OKR助理是帮助团队管理者落实OKR管理的工具。它自动化使用飞书的云文档、任务、日程、群组、文本消息、卡片消息功能,提供飞阅会方法、销项管理方法、1on1会议方法、团队个人职业发展规划的模板和实践,从而完成OKR制定、周/月/季/半年/年跟踪和评价、个人职业规划制定、核心团队定期1on1沟通、日常工作销项,最终帮助团队负责人赋能团队向着一致的目标高效前进。

    它是飞书OKR工具的补充,飞书OKR更着重OKR的制定(公开、对齐),OKR助理更着重OKR作为体系的有效性。

    P.S. 飞书汇报工具更偏重传统的团队管理,目前与OKR的结合较少。

    业务流程

    bizflow4okrassistant

    技术架构

    techarch4okrassistant

    部署架构

    后端服务

    • 使用Docker Desktop运行后端服务
    mac:~ songxiang$ docker ps
    CONTAINER ID   IMAGE                          COMMAND                  CREATED      STATUS              PORTS                                                                    NAMES
    ea121c4783ac   okr_assistant_service:latest   "celery -A oas.manag…"   7 days ago   Up About a minute                                                                            python-service-4-okr-assistant_oas_worker_2
    710255cfe23a   okr_assistant_service:latest   "celery -A oas.manag…"   7 days ago   Up About a minute                                                                            python-service-4-okr-assistant_oas_worker_1
    b2ff5b0fe0b8   nginx:latest                   "/docker-entrypoint.…"   7 days ago   Up About a minute   0.0.0.0:3001->80/tcp                                                     oas_nginx
    e4cc03c1f55c   okr_assistant_service:latest   "python app.py"          7 days ago   Up About a minute                                                                            python-service-4-okr-assistant_oas_server_2
    298d1cc7e5e5   okr_assistant_service:latest   "python app.py"          7 days ago   Up About a minute                                                                            python-service-4-okr-assistant_oas_server_1
    2b102d878e0c   okr_assistant_service:latest   "celery -A oas.manag…"   7 days ago   Up About a minute                                                                            oas_beat
    def071ffe39c   redis:latest                   "docker-entrypoint.s…"   7 days ago   Up About a minute   0.0.0.0:6379->6379/tcp                                                   oas_redis
    93faef05756f   rabbitmq:latest                "docker-entrypoint.s…"   7 days ago   Up About a minute   4369/tcp, 5671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:5672->5672/tcp   oas_rabbitmq
    33e7e46f1241   mysql:latest                   "docker-entrypoint.s…"   7 days ago   Up About a minute   0.0.0.0:3306->3306/tcp, 33060/tcp                                        oas_mysql
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 使用内网穿透工具ngrok将后端服务开放到公网
    mac:~ songxiang$ ps 677
      PID   TT  STAT      TIME COMMAND
      677 s001  S+    15:14.43 ngrok http 3001
    
    • 1
    • 2
    • 3

    前端应用

    前端发布至飞书小程序运行环境。

    快速开始

    准备工作

    创建飞书企业自建应用

    • 飞书开发者后台 中创建企业自建应用
    • 在应用配置页面的事件订阅中,配置Encrypt Key
    • 在应用配置页面的权限管理中,获取如下权限:
      • 以应用身份读取通讯录(免审权限)
      • 获取部门基础信息(免审权限)
      • 获取部门组织架构信息(免审权限)
      • 获取用户基本信息(免审权限)
      • 获取用户组织架构信息(免审权限)
      • 获取用户雇佣信息(免审权限)
      • 获取用户user ID(免审权限)
      • 接收群聊中@机器人消息事件(免审权限)
      • 读取用户发给机器人的单聊消息(免审权限)
      • 以应用的身份发消息(免审权限)
      • 获取企业信息(免审权限)
      • 查看、评论、编辑和管理云空间中所有文件
      • 获取与更新群组信息
      • 获取与发送单聊、群组消息

    创建腾讯云免费对话机器人

    安装 Docker Desktopngrok飞书开发者工具

    后端服务

    获取源代码

    PS C:\> git clone git@gitlab.cicconline.com:songxiang/python-service-4-okr-assistant.git
    Cloning into 'python-service-4-okr-assistant'...
    remote: Enumerating objects: 53, done.
    remote: Counting objects: 100% (53/53), done.
    remote: Compressing objects: 100% (35/35), done.
    remote: Total 77 (delta 21), reused 45 (delta 16), pack-reused 24
    Receiving objects: 100% (77/77), 114.29 KiB | 653.00 KiB/s, done.
    Resolving deltas: 100% (21/21), done.
    PS C:\> cd .\python-service-4-okr-assistant\
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    配置环境变量文件

    编辑.env

    • APP_ID:在飞书应用配置的凭证与基础信息页面,获取App ID
    • APP_SECRET:在飞书应用配置的凭证与基础信息页面,获取App Secret
    • VERIFICATION_TOKEN:在飞书应用配置的事件订阅页面,获取Verification Token
    • ENCRYPT_KEY:在飞书应用配置的事件订阅页面,获取Encrypt Key
    • TENCENT_CLOUD_AI_BOTID:在腾讯智能对话平台的Bot配置页面,获取BotId
    • TENCENT_CLOUD_API_SECRETID:在 腾讯云访问密匙 页面,获取SecretId
    • TENCENT_CLOUD_API_SECRETKEY:在 腾讯云访问密匙 页面,获取SecretKey
    • SQLALCHEMY_DATABASE_URI:mysql+pymysql://root:数据库密码@mysql:3306/okr_assistant

    编译和启动后端服务

    PS C:\python-service-4-okr-assistant> .\exec.ps1
    
    • 1

    使用ngrok将后端服务发布到公网

    PS C:\python-service-4-okr-assistant> ngrok http 3001
    
    • 1

    前端应用

    获取源代码

    PS C:\> git clone git@gitlab.cicconline.com:songxiang/feishu-microapp-4-okr-assistant.git
    Cloning into 'feishu-microapp-4-okr-assistant'...
    remote: Enumerating objects: 14, done.
    remote: Counting objects: 100% (14/14), done.
    remote: Compressing objects: 100% (14/14), done.
    Receiving objects:  92% (99/107)sed 0 (delta 0), pack-reused 93Receiving objects:  88% (95/107)
    Receiving objects: 100% (107/107), 52.45 KiB | 1.69 MiB/s, done.
    Resolving deltas: 100% (32/32), done.
    PS C:\> cd .\feishu-microapp-4-okr-assistant\
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    配置飞书机器人

    • 进入飞书开放平台->开发者后台,在应用配置页面的事件订阅页面,配置请求网址URL为用ngrok发布的后端服务公网地址,例如https://1cb8-223-72-47-65.ngrok.io
    • 在应用配置页面的应用功能小程序机器人页面,打开对应功能

    编译发布飞书小程序

    • 飞书开发者工具打开源代码路径
    • project.config.json中,将appid改为在飞书应用配置的凭证与基础信息页面获取的App ID
    • app.js中,将appId改为在飞书应用配置的凭证与基础信息页面获取的App ID
    • app.js中,将backendService改为用ngrok发布的后端服务公网地址(保留后面/api/v1),例如https://1cb8-223-72-47-65.ngrok.io
    • 使用上传功能上传小程序包
    • 在飞书应用配置的应用发布页面中,创建应用办法并发布,联系飞书管理员审核上线

    功能验证

    • 飞书机器人与应用同名,可以通过飞书全局搜索找到,可以先给它发给消息,看看AI会回复啥,不过刚开始的时候,这机器人很蠢,说的多了,会好一些
    • 飞书小程序可以在飞书工作台上找到,也可以通过飞书全局搜索得到

    OKR助理使用的模板

  • 相关阅读:
    ArcGIS:如何迭代Shp文件所有要素并分别导出为Shp文件?
    辅助驾驶功能开发-功能对标篇(5)-NDA领航辅助系统-广汽埃安
    密西根大学张阳教授受聘中国上海交通大学客座教授(图)
    【设计模式】装饰器模式(结构型)⭐⭐
    利用Vite或者webpack创建(打包)Vue项目,并启动Vue项目
    Nignx及负载均衡&动静分离
    7 8051 C51 使用_getkey对scanf输入重定向,实现标准输入输出,getchar
    falco 【1】简介
    JAVAWeb学习1:HTML超文本标记语言
    【教程】 iOS混淆加固原理篇
  • 原文地址:https://blog.csdn.net/cloudguru/article/details/125505652