Арис-Ай
[Английский | 简体中文]
Введение
Это проект, который предоставляет частные услуги на крупных языковых моделях с целью быстрого доступа к общим крупным моделям (GPT3.5, GPT4) и частным моделям (QWEN1.5, Chatglm3, Llama2, Baichuan2 и т. Д.), Предоставляя унифицированный интерфейс API. Полагаясь на фреймворк Langchain для предоставления услуг по многословным диалогам (чату) и получения услуг по поиску дополненного поколения (RAG), название проекта происходит от персонажа ARIS в Blue Archive, как показано на рисунке ниже
ARIS: синий архив 中的角色
Изменить журнал
[2024-07-13] Мы открываем исходный код ARIS-AI-модель-сервер, который интегрирует услуги LLM, внедрения и развертывания Reranker и предоставляет интерфейс API, совместимый с OpenAI, чтобы облегчить пользователям привлечение частных моделей.
[2024-06-23] Мы выпускаем модель серии ARIS-14B-чат, которая SFT и DPO от QWEN1.5-14B-Chat в нашем личном наборе данных. Пожалуйста, подчиняйтесь соглашению QWEN с открытым исходным кодом при использовании его.
[2024-06-15] Используйте NEO4J в качестве базы данных для хранения баз знаний
Технический стек
Тонкая настройка
- Трансформеры
- Пефт
- Пирог
- Глубокая скорость
Частная модель развертывания
- llama.cpp
- Llama-Cpp-Python
Служба модели большого языка
API Бэкэнд
- FASTAPI
- SQLALCHEMY
- Jwt
- Mysql
- Редис
- Neo4j
Веб -интерфейс
Развертывание проекта
Реализация функции
API связан
- Регистрация пользователя, вход в систему, управление разрешением
- Управление диалогами, управление истории
- Модель (LLM, встраивание) управление, предустановленное (системное) управление
- Управление векторными базами данных, вставка векторной базы данных, поддержка:
- Файлы: pdf, markdown, html, jupyter, txt, python, c ++, java и другие кодовые файлы
- Ссылки: arxiv, git, unautenticated url (поддерживает рекурсивное ползание, автоматизированное ползание инструмента)
Модельная служба связана
- Чат: поддерживает многоуровневый диалог
- Retriever QA: поддерживает ответ на вопрос, отвечая (Rag) Полученное поколение
Веб -интерфейс
- Предоставьте интерфейс для загрузки баз знаний
- Предоставить интерфейс диалога
Структура проекта
.
├── assets
├── confs
│ ├── deployment
│ └── local
├── docker
│ ├── deployment
│ └── local
├── envs
│ ├── deployment
│ └── local
├── kubernetes
├── logs
├── pages
└── src
├── api
│ ├── auth
│ ├── model
│ └── router
│ └── v1
│ ├── model
│ └── oauth2
├── config
├── langchain_aris
├── logger
├── middleware
│ ├── jwt
│ ├── logger
│ ├── mysql
│ │ └── models
│ └── redis
└── webui
Местное развертывание
Клонировать репозиторий
git clone https://github.com/hcd233/Aris-AI
cd Aris-AI
Создайте виртуальную среду (необязательно)
Вы можете пропустить этот шаг, но вы должны убедиться, что среда Python будет 3.11
conda create -n aris python=3.11.0
conda activate aris
Установить зависимости
pip install poetry
poetry install
Настройка конфуза и env (опущено)
См. Файл шаблона
Начните Mysql и Redis
docker-compose -f docker/local/docker-compose.yml up -d
Запустите сервер API
Обратите внимание, что вам необходимо указать Local/api.env как переменную среды в IDE
Начните WebUI
Обратите внимание, что вам необходимо указать Local/webui.env как переменная среды в IDE
streamlit run aris_webui.py
Доступ Swaggerui и Webui
- Swaggerui: http: // localhost: $ {api_port}/docs
- Webui: http: // localhost: 8501
Docker развертывание
Настройте конфликт и env (как указано выше)
См. Файл шаблона
Создать объемы
docker volume create mysql-data
docker volume create redis-data
docker volume create neo4j-data
Начните контейнер
docker-compose -f docker/deployment/docker-compose.yml up -d --no-build
Инструкции по эксплуатации
Пользовательская операция
- Для операций входа в систему я сделал только простую проверку пользователя и пароля и не предоставил регистрационную функцию в веб -посечении. Пожалуйста, позвоните в интерфейс API самостоятельно и установите статус администратора (is_admin = 1) в операции базы данных для доступа к частным моделям
- После входа в систему вам нужно нести токен JWT, чтобы управлять секретным ключом, который используется для вызова услуги частной модели
Модель операция
- Позвоните в общую большую модельную службу, которая в настоящее время поддерживает только модели серии Openai (или агенты с открытыми интерфейсами). Вы можете получить доступ к нему непосредственно в API. Вам необходимо хранить информацию, такую как базовый, ключ, max_tokens в базе данных, и вы можете настроить систему
- Позвоните в службу частной модели, пожалуйста, разверните модель в качестве сервиса API с API, подобным OpenAI (вы можете использовать ARIS-AI-модель-сервер) и настройки соответственно.
Проект Outlook
Цели
- Поддержка доступа к большему количеству моделей (Azureopenai, Gemini, Huggingfaceendpoint, Llama.cpp)
- Больше стратегий RAG (Rag Fusion, перестройка, многоплановая отзыв и т. Д.)
- Поддержка мультимодального чата и тряпки
- Поддержка поддержания пула ключей для той же модели для достижения балансировки нагрузки
- Агент поддержки и вызовы инструментов
- Выпустить тонкие частные модели
Статус автора
Из -за моего занятого графика работы прогресс в проекте может быть относительно медленным, и я иногда обновляю его. PRS и проблемы приветствуются