基于智谱AI表情包数据建立的EmojiAgent开源项目
👋 大家好,最近智谱AI组织了一场表情包斗图Agent的分享直播,他们的演示是使用GLMs的智能体进行演示。
看起来很有趣,我就想基于他们公开的表情包数据集,做一个开源EmojiAgent项目 ➡️ 一方面是能接入自己研发的AI Native产品 帝阅-专注知识管理与创造的智能侍读助理 ➡️ 另一方面是作为一个工程案例分享给更多AI同行者
如果大家对我的其它开源项目感兴趣,欢迎访问我的Github主页
接下来我就和大家介绍一下我最新制作的这个EmojiAgent开源项目:LangChain-Emoji
📊 表情包数据集
本项目表情包数据来源于智谱 AI 团队,数据来源和相关介绍如下 github.com/LLM-Red-Tea… 感谢开源 一起玩转大模型 🎉🌟🌟
🚀 快速开始
1.部署 Python 环境
- 安装 miniconda
mkdir ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
~/miniconda3/bin/conda init bash
- 创建虚拟环境
# 创建环境
conda create -n LangChain-Emoji python==3.10.11
- 安装 poetry
# 安装
curl -sSL https://install.python-poetry.org | python3 -
2. 运行 LangChain-Emoji
- 安装依赖
# 克隆项目代码到本地
git clone https://github.com/ptonlix/LangChain-Emoji.git
conda activate LangChain-Emoji # 激活环境
cd LangChain-Emoji # 进入项目
poetry install # 安装依赖
- 修改配置文件
OpenAI 文档 ZhipuAI 文档 LangChain API
# settings.yaml
配置文件录入或通过环境变量设置以下变量
# OPENAI 大模型API
OPENAI_API_BASE
OPENAI_API_KEY
# ZHIPUAI 智谱API
ZHIPUAI_API_KEY
# LangChain调试 API
LANGCHAIN_API_KEY
# 向量数据库,默认采用chromadb
embedding #配置向量模型,默认为zhipuai
# 腾讯云向量数据库配置(可选)
TCVERCTORDB_API_HOST
TCVERCTORDB_API_KEY
# Minio云盘配置(可选)
MINIO_HOST
MINIO_ACCESS_KEY
MINIO_SECRET_KEY
详情配置文件介绍见: LangChain-Emoji 配置
- 数据初始化
主要借助于 tools/datainit.py
数据初始化工具完成相关操作
I. 采用数据本地文件部署
从百度下载数据,解析
地址:https://pan.baidu.com/s/11iwqoxLtjV-DOQli81vZ6Q?pwd=tab4
下载到local_data,并解压
cd tools
python datainit.py --download
# 等待数据包下载并解压完成
Ⅱ. 采用 Minio 云盘部署(可选)
完成步骤1
,将数据下载到 local_data 目录并解压完成
修改settings.yaml
配置文件中 minio 的配置,填写好
MINIO_HOST
MINIO_ACCESS_KEY
MINIO_SECRET_KEY
填写好这三个参数
cd tools
python datainit.py --upload
# 等待数据上传到minio完成
Ⅲ. 同步元数据到向量数据库 (默认采用 ChromaDB)
cd tools
python datainit.py --vectordb
# 等待数据上传到向量数据库完成
腾讯云向量数据库(可选) 修改
settings.yaml
配置文件中 向量数据库 的配置,填写好TCVERCTORDB_API_HOST
TCVERCTORDB_API_HOST
填写好这两个参数vectorstore
database
选择tcvectordb
- 启动项目
# 启动项目
python -m langchain_emoji
# 查看API
访问: http://localhost:8003/docs 获取 API 信息
- 启动 Web Demo
# 进入前端目录
cd frontend
# 启动
streamlit run emoji.py
💡 演示效果
📖 项目介绍
1. 流程架构
LangChain-Emoji流程架构图
核心流程:
- 项目数据初始化,将表情包数据集下载并同步到向量数据库和云盘等
- 前端传入 Prompt 通过 Retriever 召回表情包信息(文件名、文件描述)列表(默认 4 个)
- 通过大语言模型,从表情包列表中筛选出最符合输入 Prompt 的表情包
- 通过表情包的文件名去数据中心获取图片数据,返回前端呈现
2. 目录结构
├── docs # 文档
├── local_data # 数据集目录
├── langchain_emoji
│ ├── components #自定义组件
│ ├── server # API服务
│ ├── settings # 配置服务
│ ├── utils
│ ├── constants.py
│ ├── di.py
│ ├── launcher.py
│ ├── main.py
│ ├── paths.py
│ ├── __init__.py
│ ├── __main__.py #入口
│ └── __version__.py
├── log # 日志目录
3. 功能介绍
- 支持
openai
zhipuai
deepseek
大模型 - 支持本地向量数据库
chroma
和腾讯云向量数据库
- 支持 配置文件动态加载
- 支持 Web Demo 演示
🚩 Roadmap
- 搭建 LangChain-Emoji 初步框架,完善基本功能
- 支持本地向量数据库 Chroma
- 搭建前端 Web Demo
- 新在线大模型: 深度求索 ⏳ 测试中
- 接入微信客户端,开启斗图模式
💥 贡献
欢迎大家贡献力量,一起共建 LangChain-Emoji,您可以做任何有益事情
- 报告错误
- 建议改进
- 文档贡献
- 代码贡献 ... 👏👏👏
🎉 感谢大家支持~ 也欢迎大家在评论区多多与我留言与讨论AI相关的产品与技术~
转载自:https://juejin.cn/post/7366836510689689635