Dieses Beispiel-Repository stellt einen Beispielcode für die Verwendung der RAG-Methode (Retrieval Augmented Generation) bereit, die auf Amazon Bedrock Titan Embeddings Generation 1 (G1) LLM (Large Language Model) weitergeleitet wird, um Texteinbettungen zu erstellen, die in Amazon OpenSearch mit Vektor-Engine-Unterstützung gespeichert werden Unterstützung bei der zeitnahen Engineering-Aufgabe für eine genauere Reaktion der LLMs.
Nachdem wir Einbettungen erfolgreich in OpenSearch geladen haben, beginnen wir mit der Abfrage unseres LLM mithilfe von LangChain. Wir werden Fragen stellen und ähnliche Einbettungen abrufen, um eine genauere Eingabeaufforderung zu erhalten.
Sie können den Parameter --bedrock-model-id
verwenden, um nahtlos eines der verfügbaren Fundamentmodelle in Amazon Bedrock auszuwählen, das standardmäßig Anthropic Claude v2 ist und durch jedes andere Modell eines anderen Modellanbieters ersetzt werden kann, um Ihr leistungsstärkstes Fundament auszuwählen Modell.
Anthropisch:
python ./ask-bedrock-with-rag.py --ask "How will AI will change our every day life?"
python ./ask-bedrock-with-rag.py --bedrock-model-id anthropic.claude-v1 --ask "How will AI will change our every day life?"
python ./ask-bedrock-with-rag.py --bedrock-model-id anthropic.claude-instant-v1 --ask "How will AI will change our every day life?"
AI21-Labore:
python ./ask-bedrock-with-rag.py --bedrock-model-id ai21.j2-ultra-v1 --ask "How will AI will change our every day life?"
python ./ask-bedrock-with-rag.py --bedrock-model-id ai21.j2-mid-v1 --ask "How will AI will change our every day life?"
Dies wurde auf Python 3.11.4 getestet
Es wird empfohlen, in einer sauberen Umgebung zu arbeiten und virtualenv
oder einen anderen Manager für virtuelle Umgebungen zu verwenden.
pip install virtualenv
python -m virtualenv venv
source ./venv/bin/activate
Installieren Sie die Anforderungen pip install -r requirements.txt
Installieren Sie Terraform, um den OpenSearch-Cluster zu erstellen
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
Gehen Sie zur Seite „Modellzugriff“ und aktivieren Sie die Fundamentmodelle, die Sie verwenden möchten.
Im ersten Schritt werden wir einen OpenSearch-Cluster mit Terraform starten.
cd ./terraform
terraform init
terraform apply -auto-approve
Diese Clusterkonfiguration dient nur zu Testzwecken, da der Endpunkt öffentlich ist, um die Verwendung dieses Beispielcodes zu vereinfachen.
Da wir nun über einen laufenden OpenSearch-Cluster mit Vektor-Engine-Unterstützung verfügen, beginnen wir mit dem Hochladen unserer Daten, die uns bei der schnellen Entwicklung helfen werden. Für dieses Beispiel verwenden wir eine Datenquelle von Hugging Face embedding-training-data gooaq_pairs, laden sie herunter und rufen Titan-Einbettung auf, um eine Texteinbettung zu erhalten, die wir für die nächsten Schritte in OpenSearch speichern.
python load-data-to-opensearch.py --recreate 1 --early-stop 1
Optionale Argumente:
--recreate
zum Neuerstellen des Index in OpenSearch--early-stop
um nur 100 eingebettete Dokumente in OpenSearch zu laden--index
um einen anderen Index als den Standardindex zu verwenden--region
, falls Sie nicht den Standardwert us-east-1 verwenden
Nachdem wir nun Text in unseren OpenSearch-Cluster eingebettet haben, können wir mit der Abfrage unseres LLM-Modells Titan-Text in Amazon Bedrock mit RAG beginnen
python ask-bedrock-with-rag.py --ask " your question here "
Optionale Argumente:
--index
um einen anderen Index als den Standardindex zu verwenden--region
, falls Sie nicht den Standardwert us-east-1 verwenden--bedrock-model-id
um andere Modelle als Claude v2 von Anthropic auszuwählen
cd ./terraform
terraform destroy # When prompt for confirmation, type yes, and press enter.
Weitere Informationen finden Sie unter BEITRAGEN.
Diese Bibliothek ist unter der MIT-0-Lizenz lizenziert. Siehe die LICENSE-Datei.