ARIS-AI
[Englisch | 简体中文]
Einführung
Dies ist ein Projekt, das private großsprachige Modelldienste anbietet und darauf abzielt, schnell auf allgemeine große Modelle (GPT3.5, GPT4) und private Modelle (QWEN1.5, Chatglm3, Llama2, Baichuan2 usw.) zuzugreifen und eine einheitliche API -Schnittstelle zu bieten. Der Projektname stellt sich auf das Langchain-Framework zur Bereitstellung von Diensten für Multi-Turn-Dialog (CHAT) und Abruf Augmented Generation (RAG) zur Verfügung.
ARIS: Blue Archive 中的角色
Protokoll ändern
[2024-07-13] Wir haben den ARIS-AI-Model-Server, der LLM, Einbettungs- und Reranker-Bereitstellungsdienste integriert, eine OpenAI-kompatible API-Schnittstelle zur Verfügung gestellt, mit der Benutzer private Modelle bereitstellen können.
[2024-06-23] Wir veröffentlichen das Modell ARIS-14B-CHAT-Serien, das SFT und DPO von QWEN1.5-14B-CHAT in unserem privaten Datensatz. Bitte befolgen Sie die Qwen Open Source -Vereinbarung, während Sie sie verwenden.
[2024-06-15] Verwenden Sie Neo4J als Datenbank zum Speichern von Wissensbasis
Tech Stack
Feinabstimmung
- Transformatoren
- Peft
- Pytorch
- Deepspeed
Private Modellbereitstellung
Großsprachenmodellservice
API -Backend
- Fastapi
- Sqlalchemy
- Jwt
- Mysql
- Redis
- Neo4j
Web UI
Projektbereitstellung
Funktionsimplementierung
API verwandt
- Benutzerregistrierung, Login, Berechtigungsverwaltung
- Dialogmanagement, Geschichtsmanagement
- Modellverwaltung (LLM, Einbettung), Pressemanagement voreingestellter (System)
- Vektordatenbankverwaltung, Vektordatenbankeinfügung, Unterstützung:
- Dateien: PDF, Markdown, HTML, Jupyter, TXT, Python, C ++, Java und andere Codedateien
- Links: Arxiv, Git, nicht authentifizierte URL (unterstützt rekursives Krabbeln, automatisiertes Werkzeugkriechen)
Modelldienst verwandt
- CHAT: Unterstützt der Multi-Runden-Dialog
- Retriever QA: Unterstützt die Beantwortung der Frage mit (RAG) Abrufenvergrößerung der Generation
Webschnittstelle
- Stellen Sie eine Schnittstelle zur Hochladung von Wissensbasen zur Verfügung
- Geben Sie eine Dialogschnittstelle an
Projektstruktur
.
├── 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
Lokale Bereitstellung
Klonen Sie das Repository
git clone https://github.com/hcd233/Aris-AI
cd Aris-AI
Erstellen Sie eine virtuelle Umgebung (optional)
Sie können diesen Schritt überspringen, müssen jedoch sicherstellen, dass die Python -Umgebung 3.11 ist
conda create -n aris python=3.11.0
conda activate aris
Abhängigkeiten installieren
pip install poetry
poetry install
Konfigurieren Sie CONS und ENV (weggelassen)
Siehe die Vorlagendatei
Starten Sie MySQL und Redis
docker-compose -f docker/local/docker-compose.yml up -d
Starten Sie den API -Server
Beachten Sie, dass Sie lokal/api.env als Umgebungsvariable in der IDE angeben müssen
Starten Sie die Webui
Beachten Sie, dass Sie lokale/webui.env als Umgebungsvariable in der IDE angeben müssen
streamlit run aris_webui.py
Zugang zu Swaggerui und Webui
- Swaggerui: http: // localhost: $ {api_port}/docs
- Webui: http: // localhost: 8501
Docker -Bereitstellung
Konfigurieren Sie CONS und ENV (wie oben)
Siehe die Vorlagendatei
Bände erstellen
docker volume create mysql-data
docker volume create redis-data
docker volume create neo4j-data
Starten Sie den Behälter
docker-compose -f docker/deployment/docker-compose.yml up -d --no-build
Betriebsanweisungen
Benutzeroperation
- Für Anmeldevorgänge habe ich nur eine einfache Benutzername und Kennwortüberprüfung durchgeführt und keine Registrierungsfunktion in der Webui bereitgestellt. Rufen Sie die API -Schnittstelle selbst an und setzen
- Nach dem Login müssen Sie ein JWT -Token tragen, um den geheimen Schlüssel zu bedienen, mit dem der private Modelldienst aufgerufen wird
Modellbetrieb
- Rufen Sie den allgemeinen großen Modelldienst an, der derzeit nur die OpenAI-Serienmodelle (oder Agenten mit OpenAI-ähnlichen Schnittstellen) unterstützt. Sie können direkt in der API darauf zugreifen. Sie müssen Informationen wie Basis, Schlüssel, max_tokens in der Datenbank speichern und die Systemaufforderung anpassen
- Rufen Sie den privaten Modelldienst an. Stellen Sie das Modell bitte als API-Dienst mit einer OpenAI-ähnlichen API ein (Sie können ARIS-AI-Model-Server verwenden) und konfigurieren Sie es entsprechend.
Projektausblick
Ziele
- Support Access zu mehr Modellen (Azureopenai, Gemini, Huggingfaceendpoint, Lama.cpp)
- Weitere Lag-Strategien (RAG Fusion, Neuanordnung, Multi-Pfad-Rückruf usw.)
- Unterstützen Sie Multimodal Chat & Rag
- Unterstützen Sie die Aufrechterhaltung eines Schlüsselpools für dasselbe Modell, um einen Lastausgleich zu erreichen
- Unterstützen Sie Agenten- und Toolsanrufe
- Fein abgestimmte private Modelle freigeben
Autorenstatus
Aufgrund meines vollen Arbeitsplans kann der Projektfortschritt relativ langsam sein, und ich werde ihn gelegentlich aktualisieren. PRs und Probleme sind willkommen