Git Product home page Git Product logo

langchain-emoji's Introduction

🥳 LangChain-Emoji

简体中文 | English


基于LangChain的开源表情包斗图Agent

Python LangChain tcvectordb license

本项目表情包数据来源于智谱 AI 团队,数据来源和相关介绍如下
https://github.com/LLM-Red-Team/emo-visual-data
感谢开源 一起玩转大模型 🎉🌟🌟

💡💡💡 更新:我们支持微信客户端体验啦~

扫描以下二维码,添加微信,开启斗图模式




🚀 Quick Install

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

💡 演示效果

IMAGE ALT TEXT

微信客户端

我们支持微信客户端体验啦~

📖 项目介绍

1. 流程架构


LangChain-Emoji流程架构图

核心流程:

  1. 项目数据初始化,将表情包数据集下载并同步到向量数据库和云盘等
  2. 前端传入 Prompt 通过 Retriever 召回表情包信息(文件名、文件描述)列表(默认 4 个)
  3. 通过大语言模型,从表情包列表中筛选出最符合输入 Prompt 的表情包
  4. 通过表情包的文件名去数据中心获取图片数据,返回前端呈现

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
    • 选择 LLM
  • 支持更多模型
    • 在线大模型: 深度求索 ⏳ 测试中
    • 本地大模型
  • 接入微信客户端,开启斗图模式

🌏 项目交流讨论

🎉 扫码联系作者,如果你也对本项目感兴趣
🎉 欢迎加入 LangChain-X (帝阅开发社区) 项目群参与讨论交流

💥 贡献

欢迎大家贡献力量,一起共建 LangChain-Emoji,您可以做任何有益事情

  • 报告错误
  • 建议改进
  • 文档贡献
  • 代码贡献
    ...
    👏👏👏

「帝阅」
是一款个人专属知识管理与创造的 AI Native 产品
为用户打造一位专属的侍读助理,帮助提升用户获取知识效率和发挥创造力
让用户更好地去积累知识、管理知识、运用知识

LangChain-Emoji 是帝阅项目一个子项目

欢迎大家前往体验帝阅 给我们提出宝贵的建议



帝阅DeepRead

langchain-emoji's People

Contributors

ptonlix avatar

Stargazers

Sled avatar  avatar  avatar  avatar  avatar  avatar  avatar Zequn Liu avatar tangyoha avatar Simon Shengyu Meng avatar  avatar kangfoo avatar  avatar Tianze Ds avatar  avatar LeoCui avatar zR avatar jiawei avatar Clivia avatar Vinlic科技 avatar

Watchers

 avatar

Forkers

earyantle

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.