Demo LLM (RAG Pipeline) Web-App, die lokal mit Docker-Compose ausgeführt wird. LLM- und Einbettungsmodelle werden als Dienstleistungen von OpenAI konsumiert.
Das Hauptziel ist es, den Benutzern Fragen im Zusammenhang mit LASIK -Operationen zu stellen, beispielsweise "Gibt es eine Kontraindikation für Computerprogrammierer, um LASIK zu erhalten?"
Die Pipeline (Abruf Augmented Generation) ruft die aktuellsten Informationen aus dem Datensatz ab, um genaue und relevante Antworten auf Benutzeranfragen zu geben.
Die App -Architektur wird unten dargestellt:

Sequenzdiagramm:
sequenzieren
Benutzer->> Langserve-API: Abfrage
Beachten Sie das Recht des Benutzer: Gibt es eine Kontraindikation <br/> für Computerprogrammierer <br/>, um LASIK zu bekommen?
Langserve API->> OpenAI-Einbettungen: Benutzerabfrage
OpenAI-Einbettung->> Langserve-API: Einbettung
Langserve API->> Milvusdb: Dokumente Abrufen (Vektorsuche)
Milvusdb->> Langserve-API: Relevante Dokumente
Hinweis Recht von Langserve API: Eingabeaufforderung <br/> Engineering ...
Langserve API->> OpenAI LLM: Angereichte Eingabeaufforderung
OpenAI LLM->> Langserve API: Erzeugte Antwort
UX:

App Docker Bild erstellen:
make app-buildStellen Sie Ihre OpenAI -API -Schlüssel als Umgebungsvariable fest
export OPENAI_API_KEY= < your-api-key >MILVUS DB aufdrehen:
make db-upDB mit dem Lasik Eye Chirurgy -Komplikationsdatensatz bevölkern:
make db-populate
Spin-up-API:
make app-run
Der Chatbot ist jetzt unter http: // localhost: 8000/lasik_complications/Playground/verfügbar
Zeigen Sie alle verfügbaren Befehle mit:
make help 
Aufräumen
make clean ├── .github
│ ├── workflow
│ │ └── cicd.yml <- CI pipeline definition
├── data
│ └── laser_eye_surgery_complications.csv <- Kaggle dataset
|
├── docs
│ ├── diagrams <- Folder containing diagram definitions
│ └── img <- Folder containing screenshots
│
├── src
│ ├── config.py <- Config file with service host/ports or models to be used
│ ├── populate_vector_db.py <- Scripts that converts texts to embeddings and populates Milvus DB
│ └── server.py <- FastAPI/Langserve/Langchain
│
├── .gitignore
├── .pre-commit-config.yaml <- ruff linter pre-commit hook
├── docker-compose.yml <- container orchestration
├── Dockerfile <- App image definition
├── Makefile <- Makefile with commands like `make app-build`
├── poetry.lock <- Pinned dependencies
├── pyproject.toml <- Dependencies requirements
├── README.md <- The top-level README for developers using this project.
└── ruff.toml <- Linter config
Bezogen aus LASIK (Laser Eye Surgery) Komplikationen (Kaggle)

Milvus ist eine von Zilliz entwickelte Open-Source-Vektor-Datenbank-Engine, mit der große Vektordaten wie Einbettung, Funktionen und hochdimensionale Daten gespeichert und verwaltet wurden. Es bietet effiziente Speicher-, Indexierungs- und Abruffunktionen für Suchaufgaben der Vektorähnlichkeit .

Langchain ist ein LLM-Orchestrierungs-Tool. Es ist sehr nützlich, wenn Sie kontextbezogene LLM-Apps erstellen müssen.
Um den Kontext für die LLM bereitzustellen, müssen wir die ursprüngliche Frage in eine Eingabeaufforderungsvorlage einwickeln

Sie können überprüfen, welche Eingabeaufgabe die LLM tatsächlich empfangen wird, indem Sie auf "Zwischenschritte" in der UX klicken

Langserve hilft Entwicklern, Langchain -Runnables und Ketten als REST -API einzusetzen. Diese Bibliothek ist in Fastapi integriert.
Der Chatbot kann keine Fragen zu Statistiken beantworten, z. B. "Gibt es jüngste Trends in Komplikationen bei Lasik -Operationen?" Es sollte ein weiteres Modell geben, das den relevanten Zeitfenster für das Abrufen der Dokumente erwägt und dann die endgültige Eingabeaufforderung mit diesem Zeitfenster anreichert.
Algorithmisches Feedback mit Langsmith. Dies würde es ermöglichen, die Robustheit der LLM -Kette automatisiert zu testen.