Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zur Registrierung für einen kostenlosen Account finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Ersetzen Sie diese Werte nach Abschluss der Übung durch Werte, die für Ihre Cloud-Umgebung spezifisch sind.
Integrieren Sie LangChain, OCI Data Science Notebook, OCI in OpenSearch und OCI Generative AI, um die LLM-Entwicklung für RAG und Konversationssuche zu beschleunigen
Einführung
In diesem Tutorial untersuchen wir, wie sich LangChain, Oracle Cloud Infrastructure (OCI) Data Science Notebook, OCI mit OpenSearch, OCI Data Science AI Quick Actions (AI Quick Actions) und der OCI Generative AI-Service nahtlos integrieren lassen, um die Anwendungsentwicklung großer Sprachmodelle (LLM) zu vereinfachen. Diese Tools beschleunigen Workflows, verbessern die Produktivität und ermöglichen eine schnellere Bereitstellung modernster KI-Lösungen, die auf spezifische Geschäftsanforderungen zugeschnitten sind.
Im ersten Tutorial: Tutorial 1: OCI Search mit OpenSearch und LangChain in OCI Data Science Notebook integrieren haben wir die transformativen Auswirkungen der Integration von LangChain, OCI mit OpenSearch und Hugging Face erläutert und gezeigt, wie diese Technologien mit OCI Data Science Notebook arbeiten können, um die Entwicklung und Produktion von semantischen Suchlösungen für Unternehmen zu vereinfachen. Wir haben die End-to-End-Konfigurationsschritte für die Einrichtung von OCI mit OpenSearch, die Einrichtung von OCI Data Science Notebook, die Konfiguration von LangChain mit Notizbuchsession und die Bereitstellung eines vollständigen Anwendungsfalls für die semantische Suche beschrieben.
Auf dieser Grundlage konzentriert sich dieses Tutorial darauf, wie eine nahtlose Integration über LangChain, OCI mit OpenSearch, KI-Schnellaktionen und OCI Generative AI die LLM-Anwendungsentwicklung für benutzerdefinierte Geschäftsanwendungsfälle beschleunigen kann. Wir werden insbesondere in Lösungen rund um Konversationssuche, Retrieval-Augmented Generation (RAG) und Fragen beantwortende Chatbots eintauchen und zeigen, wie diese Tools zusammen Entwickler befähigen, Herausforderungen zu meistern und innovative, skalierbare Anwendungen mit minimalem Programmieraufwand bereitzustellen.
Hinweis: Die vollständigen Codebeispiele für dieses Tutorial finden Sie in unserem öffentlichen Beispielrepos hier: OCI OpenSearch-Servicecodebeispiele.
Vorteile des integrierten Ansatzes
-
Reduzierte Komplexität: Die nahtlose Integration über LangChain, OCI-Services und Notizbücher hinweg macht komplexe Pipelines überflüssig und reduziert den Entwicklungsaufwand.
-
Schnellere Markteinführungszeit: Entwickler können Anwendungen schnell prototypisieren, testen und bereitstellen und so eine schnellere Wertschöpfung für Benutzer sicherstellen.
-
Skalierbarkeit und Flexibilität: Die robuste Infrastruktur von OCI unterstützt die wachsenden Anforderungen von Unternehmensanwendungen, während das modulare Design von LangChain eine einfache Erweiterung ermöglicht.
-
Verbesserte Produktivität: Durch die Automatisierung sich wiederholender Aufgaben und die Vereinfachung von Workflows können sich Entwickler auf Innovationen anstatt auf betriebliche Herausforderungen konzentrieren.
Die Erstellung von Anwendungen mit LLMs umfasst mehrere Schritte:
- Zugriff auf und Bereitstellung von Hochleistungsmodellen.
- Optimieren Sie Modelle mit domänenspezifischen Daten.
- Integration von Abrufsystemen für eine effiziente Datenabfrage.
- Modelle in großem Maßstab testen, bewerten und bereitstellen.
Jeder Schritt kann spezielle Tools, komplizierte Pipelines und erheblichen Entwicklungsaufwand erfordern. Durch die Integration von LangChain in OCI-Services können Entwickler diese Herausforderungen ganzheitlich bewältigen, die Komplexität reduzieren und die Produktivität steigern.
Ziele
-
Erfahren Sie, wie die Integration von LangChain, OCI mit OpenSearch, OCI Data Science Notebook, OCI Generative AI und AI Quick Actions funktioniert.
-
Erfahren Sie, wie Sie ein LLM-Modell mit AI Quick Actions bereitstellen.
-
Nutzen Sie die Integration von LangChain mit OCI mit OpenSearch, dem OCI GenAI-Service und OCI Data Science, um die LLM-Anwendungsentwicklung zu beschleunigen.
Voraussetzungen
-
Erstellen Sie ein OpenSearch-Cluster mit Version 2.11 oder höher. Weitere Informationen finden Sie unter Daten mit Oracle Cloud Infrastructure Search mit OpenSearch suchen und visualisieren.
-
Erstellen Sie eine OCI Data Science-Notizbuchsession. Weitere Informationen finden Sie unter Überblick über Data Science. Sie können auch das erste Tutorial lesen: OCI mit OpenSearch und LangChain in OCI Data Science Notebook integrieren, oder Data Science-Notizbuch in Ihrem Mandanten einrichten befolgen.
Aufgabe 1: OCI Data Science-Projekt erstellen und Notizbücher konfigurieren
OCI Data Science Notebook bietet eine flexible und interaktive Plattform für die Entwicklung, das Testen und das Deployment von KI-Anwendungen. Die Integration von Notizbüchern mit OCI-Services schafft eine nahtlose Entwicklungserfahrung, wodurch der Bedarf an externen Tools reduziert wird. Mit Notizbüchern können Sie:
- Prototypanwendungen: Experimentieren Sie mit LangChain-, OCI Generative AI- und OCI-Integrationen mit OpenSearch.
- Workflows ausführen: Führen Sie Optimierungs-, Deployment- und Abrufworkflows aus.
- Kollaborative Nutzung: Teilen und iterieren Sie Projekte mit Teammitgliedern.
Informationen zum Erstellen eines OCI Data Science-Projekts und zum Konfigurieren eines Notizbuchs finden Sie unter Aufgabe 2: Jupyter Notebook in OCI Data Science starten.
Aufgabe 2: LangChain installieren
LangChain ist eines der vielseitigsten Frameworks für die Entwicklung von LLM-basierten Anwendungen. Der modulare Aufbau und die umfangreiche Bibliothek bieten robuste Abstraktionen für:
- Prompt-Management: Vereinfachen und optimieren Sie die Prompt-Erstellung für verschiedene Anwendungsfälle.
- Agent-Unterstützung: Erstellen Sie intelligente Agents, die mit APIs oder externen Tools interagieren.
- Datenschnittstellen: Integrieren Sie Datenquellen, Abrufsysteme und Vektorspeicher.
LangChains Fähigkeit, nahtlos mit Cloud-Services wie OCI Generative AI, OCI mit OpenSearch und OCI Data Science zu interagieren, verbessert sein Utility für die Erstellung von Unternehmensanwendungen. Dank der Flexibilität von LangChain können Entwickler schnell Prototypen erstellen und Anwendungen iterieren. Dies ist ideal für RAG- und Konversationssuchlösungen. Seine Integrationen mit OCI-Services optimieren den Entwicklungsprozess weiter und ermöglichen es Entwicklern, sich auf die Bereitstellung von Mehrwert zu konzentrieren. Im ersten Tutorial haben wir darüber gesprochen, wie Sie LangChain mit einer Notizbuchumgebung konfigurieren. Außerdem haben wir ein End-to-End-Beispiel für die Verwendung von LangChain zur Verarbeitung unstrukturierter Daten, zur Aufnahme in OCI mit OpenSearch und zur Ausführung einer semantischen Suche erläutert.
Führen Sie den folgenden Befehl in Ihrem Notizbuch aus, um LangChain und andere Schlüssel-Librarys zu konfigurieren.
!pip install -U oci oracle_ads langchain langchain-community langchain-huggingface opensearch-py pypdf
Aufgabe 3: Mit LangChain Daten vorab verarbeiten und Chunking ausführen
Verwenden Sie den folgenden Python-Code.
import os
from langchain.document_loaders import PyPDFLoader, CSVLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
# Step 1: Load PDF and CSV Documents
def load_documents():
# Load PDF Document
pdf_loader = PyPDFLoader("data/sample_document.pdf")
pdf_documents = pdf_loader.load()
# Load CSV Document
csv_loader = CSVLoader(file_path="data/sample_data.csv")
csv_documents = csv_loader.load()
# Combine both sets of documents
all_documents = pdf_documents + csv_documents
return all_documents
# Step 2: Split the documents into smaller chunks for better processing
def split_documents(documents):
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=1000,
chunk_overlap=100
)
split_docs = text_splitter.split_documents(documents)
return split_docs
# Load and process documents
documents = load_documents()
split_docs = split_documents(documents)
Aufgabe 4: Einbettungsmodell mit OCI Generative AI Cohere konfigurieren
Der OCI Generative AI-Service bietet eine vollständig verwaltete Plattform für den Zugriff auf hochmoderne LLMs, wie Cohere und Meta's LLaMA-3. Unterstützt werden die folgenden Modelle.
- On-Demand-Modelle: Greifen Sie auf vortrainierte Modelle zu, die inferenzbereit sind.
- Benutzerdefinierte Modelle: Optimieren Sie LLMs mit domänenspezifischen Daten für maßgeschneiderte Antworten.
- Skalierbare KI-Cluster: Nutzen Sie die leistungsstarke Infrastruktur für umfangreiche Deployments.
Der Hauptunterschied zwischen AI Quick Actions und OCI Generative AI besteht darin, dass AI Quick Actions über einen umfangreicheren Modellkatalog verfügt und durch Modelltraining, -bewertung, Feinabstimmung und Lebenszyklusmanagement viel mehr Flexibilität bietet. Der Hauptvorteil von OCI Generative AI besteht darin, dass Sie nicht Eigentümer der Infrastruktur sein müssen, die Ihr Modell hostet. Sie können den generischen Endpunkt für eines der verfügbaren Modelle verwenden und werden nur basierend auf der Anzahl der Anforderungen und der Anzahl der Token berechnet. Im Gegensatz dazu zahlen Sie mit KI-Schnellaktionen, während Sie mehr Autonomie über Ihre LLM oder eine KI/ML-Workfloworchestrierung und Ihren Lebenszyklus haben, nur für die Kosten der Infrastruktur und haben unbegrenzte Anforderungen.
Darüber hinaus verfügt der OCI Generative AI-Service über einsatzbereite Einbettungsmodelle für Unternehmen wie das Cohere Embed-Modell V3, das für Unternehmensdaten entwickelt wurde und bekanntermaßen besser abschneidet als andere vortrainierte Satztransformatormodelle, insbesondere für benutzerdefinierte Daten. Sie müssen dieses Modell nur aufrufen, um die Einbettung für Ihre Daten zu generieren. Daher glauben wir, dass die Kombination von OCI Generative AI und KI-Schnellaktionen Ihnen den besten Nutzen für Ihre Geschäftsanwendung bieten kann. Sie können den bereits bereitgestellten OCI Generative AI Cohere-Einbettungsmodellendpunkt aufrufen, um Ihre Daten einzubetten, und KI-Schnellaktionen verwenden, um Ihr Modell zu optimieren, zu testen, zu bewerten und bereitzustellen.
LangChain lässt sich nahtlos in OCI Generative AI und AI Quick Action integrieren, sodass Entwickler Modelle direkt aus ihrer OCI-Umgebung aufrufen können. Mit minimaler Konfiguration können Entwickler vortrainierte oder optimierte Modelle verwenden.
Im Folgenden finden Sie ein Beispiel dafür, wie Sie mit der LangChain-Integration das Cohere-Modell V3 aufrufen und Dokumente während der Datenaufnahme einbetten können.
from langchain_community.embeddings import OCIGenAIEmbeddings
oci_cohere_embedding_model = OCIGenAIEmbeddings(
model_id="cohere.embed-english-v3.0",
service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
compartment_id="<>YOUR-COMPARTMENT-OCID",
auth_type="RESOURCE_PRINCIPAL",
model_kwargs={"input_type": "SEARCH_DOCUMENT"}
)
Aufgabe 5: OCI mit OpenSearch mit LangChain konfigurieren, um RAG-Workflows zu aktivieren
RAG setzt auf schnelle und präzise Abrufsysteme. OCI mit dem Service OpenSearch bietet die Infrastruktur für:
- Index- und Abfragedaten: Speichern Sie große Datasets, und rufen Sie relevante Informationen schnell ab.
- Semantische Suche: Verbessern Sie die Abrufgenauigkeit mithilfe von Einbettungen.
- Skalierbarkeit: Erweitern Sie Datasets, ohne die Performance zu beeinträchtigen.
Die Vektorspeicherfunktion von LangChain lässt sich in OCI mit OpenSearch integrieren, um RAG-Workflows zu unterstützen. Entwickler können Einbettungen aus OCI Generative AI verwenden, um Daten effizient mit OpenSearch zu indexieren und aus OCI abzurufen.
Verwenden Sie den folgenden Python-Code.
from langchain.vectorstores import OpenSearchVectorSearch
import oci
# setup your script to use Resource principal for authentication
auth_provider = oci.auth.signers.get_resource_principals_signer()
auth = ("username", "password")
AUTH_TYPE="RESOURCE_PRINCIPAL"
opensearch_url="https://amaaaaaallb3......................opensearch.us-ashburn-1.oci.oraclecloud.com:9200" // replace this whole value your opensearch url. Be sure sure to have the :9200 port in your url
# Initialize OpenSearch as the vector database
vector_db = OpenSearchVectorSearch(opensearch_url=opensearch_url,
index_name="<YOUR-INDEX-NAME>",
embedding_function=oci_cohere_embedding_model,
signer=auth_provider,
auth_type="RESOURCE_PRINCIPAL",
http_auth=auth)
Aufgabe 6: Daten aufnehmen
Verwenden Sie den folgenden Python-Code zur Aufnahme Ihrer Daten.
from langchain.vectorstores import OpenSearchVectorSearch
import oci
from tqdm import tqdm
batch_size=100
documents = load_documents() # function defined above feel free to or define a new one to process documents
document_chunks = split_documents(documents) // function defined above feel free to edit
index_name= <YOUR-INDEX-NAME>
# Ingest documents in batches
for i in tqdm(range(0, len(document_chunks), batch_size), desc="Ingesting batches"):
batch = document_chunks[i:i + batch_size]
vector_db.add_texts(texts=batch,
bulk_size=batch_size,
embedding=embedding_model,
opensearch_url=opensearch_url,
index_name= index_name,
signer=auth_provider,
auth_type=AUTH_TYPE,
http_auth=("username", "password"))
#refresh index
vector_db.client.indices.refresh(index=index_name)
Aufgabe 7: LLM für RAG mit LangChain konfigurieren
AI Quick Actions in OCI Data Science eliminiert die Komplexität der Bereitstellung und Verwaltung von LLMs. Es bietet eine No-Code-Schnittstelle für:
- Modell-Deployment: Stellen Sie vortrainierte oder optimierte Modelle als HTTP-Endpunkte bereit.
- Optimierung: Trainieren Sie Modelle mit benutzerdefinierten Datasets, um die domänenspezifische Performance zu verbessern.
- Bewertung: Testen Sie Modelle mit Metriken wie ROUGE und BERTScore.
AI Quick Actions ist einfach zu verwenden und über die OCI Data Science Notebook-Umgebung zugänglich. Es bietet eine große Menge an Flexibilität. Beispiel: Sie können Datasets verwenden, die in OCI Object Storage oder Ihrem lokalen Notizbuch gespeichert sind, um Ihr Modell zu trainieren, zu optimieren oder zu bewerten. Es ist auch eine sehr kostengünstige Lösung, da über die zugrunde liegenden Rechen- und Speicherkosten hinaus keine zusätzlichen Gebühren anfallen. Am wichtigsten ist, dass Sie mit nur wenigen Klicks auf einen Katalog mit geprüften Modellen zugreifen können, die in AI Quick Actions verfügbar sind. Darüber hinaus haben Sie die Flexibilität, diese Modelle auch auf Ihrem benutzerdefinierten Datensatz zu optimieren und zu bewerten, ohne Code zu schreiben. Ganz zu schweigen von der Option, Ihre eigenen Modellartefakte zu verwenden und einfach mit AI Quick Actions bereitzustellen, ohne sich um die Infrastruktur kümmern zu müssen. Schließlich können Sie mit der integrierten Prompt-Schnittstelle die Performance Ihres bereitgestellten Modells testen und bewerten.
AI Quick Action ist in Ihrer OCI Data Science-Notizbuchsession verfügbar. Um AI-Schnellaktionen zu verwenden, müssen Sie die erforderlichen Policys in Ihrem Mandanten einrichten. Weitere Informationen finden Sie unter KI-Schnellaktions-Policys.
-
Klicken Sie auf KI-Schnellaktionen, um AI-Schnellaktionen aus Ihrer Notizbuchsession zu starten.
-
Greifen Sie auf den LLM-Modellkatalog zu.
-
Klicken Sie auf Deployments und Deployment erstellen.
-
Geben Sie auf der Seite Modell bereitstellen die erforderlichen Details zum Erstellen eines Modell-Deployments ein.
-
Nachdem das Modell erstellt wurde, können Sie das bereitgestellte Modell anzeigen und testen.
-
Bewertung für bereitgestelltes Modell erstellen.
Führen Sie den folgenden Code aus, um mit der Integration LangChain ein bereitgestelltes LLM-Modell zur Beantwortung von Fragen aufzurufen. In diesem Fall verwenden wir das mit AI Quick Actions bereitgestellte LLM-Modell, indem wir seinen Vorhersageendpunkt wie folgt aufrufen:
import ads
from langchain_community.llms import OCIModelDeploymentLLM
ads.set_auth("resource_principal")
endpoint = "https://modeldeployment.us-ashburn-1.oci.customer-oci.com/ocid1.datasciencemodeldeployment.oc1.iad.am....................../predict"
oads_llm = OCIModelDeploymentLLM(
endpoint=endpoint,
model="odsc-llm",
model_kwargs={"temperature": 0, "max_tokens": 500, 'top_p': 1.0, 'top_k': 1}
)
#test the invoke method to make sure model is deployed and active
oads_llm.invoke("who was the first president of the united states?")
Aufgabe 8: Konversationssuche und RAG ausführen
Verwenden Sie den folgenden Python-Code, um die Unterhaltungssuche und RAG auszuführen.
# Create a retriever from the OpenSearch vector database
retriever = vector_db.as_retriever()
# Load a QA chain that combines the documents and generates an answer
combine_documents_chain = load_qa_chain(oads_llm, chain_type="stuff")
# Create the RetrievalQA chain
qa_chain = RetrievalQA(combine_documents_chain=combine_documents_chain, retriever=retriever)
# Example query
query="What was Notre Dame's first college? be explicit"
response = qa_chain.run(query)
print("Answer:", response)
Den gesamten End-to-End-Code für diese RAG-Anwendung finden Sie hier: Beispielnotizbuch für OCI OpenSearch Service. Das gesamte GitHub-Repo für dieses Tutorial finden Sie hier: opensearch-integration-with-langchain.
Nächste Schritte
Die Integration von LangChain, OCI mit OpenSearch, AI Quick Actions, OCI Generative AI und Notizbüchern bietet eine umfassende Lösung für die Erstellung von LLM-Anwendungen. Unabhängig davon, ob Sie RAG-Systeme oder Konversationssuchwerkzeuge entwickeln, arbeiten diese Technologien zusammen, um leistungsstarke, skalierbare und effiziente Lösungen bereitzustellen.
Durch die Einführung dieses integrierten Ansatzes können Entwickler das volle Potenzial generativer KI erschließen und transformative Anwendungen bereitstellen, die den Geschäftserfolg fördern. Beginnen Sie noch heute mit der Erkundung dieser Tools, und gehen Sie den ersten Schritt zur Entwicklung der Zukunft von KI-gestützten Anwendungen.
Verwandte Links
Danksagungen
-
Autoren – Landry Kezebou (Senior Machine Learning Engineer, OCI OpenSearch), Sreeni Simhadri (Senior Director of Software Development), Saiprasad Sethuram (Senior Manager Engineering)
-
Mitwirkende – Julien Lehmann (Product Marketing Manager, Oracle Data Platform), Andy Hind (Senior Applications Architect)
Weitere Lernressourcen
Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie im Oracle Learning YouTube-Channel auf weitere kostenlose Lerninhalte zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Integrate LangChain, OCI Data Science Notebook, OCI with OpenSearch and OCI Generative AI to Accelerate LLM Development for RAG and Conversational Search
G25110-01
January 2025