Heim > Technologie-Peripheriegeräte > KI > Rag-to-SQL auf Google Cloud

Rag-to-SQL auf Google Cloud

尊渡假赌尊渡假赌尊渡假赌
Freigeben: 2025-03-20 10:16:12
Original
724 Leute haben es durchsucht

Text-to-SQL-Technologien haben häufig Schwierigkeiten, den vollständigen Kontext und die Bedeutung der Anfrage eines Benutzers zu erfassen, was zu Abfragen führt, die nicht genau mit den beabsichtigten Einrichtungen übereinstimmen. Während Entwickler hart daran arbeiten, diese Systeme zu verbessern, lohnt es sich, in Frage zu stellen, ob es eine bessere Methode gibt.

Geben Sie Rag-to-SQL ein-ein neuer Ansatz, der das Verständnis der natürlichen Sprache mit einem leistungsstarken Datenabruf kombiniert, um genaue SQL-Abfragen zu generieren. Durch das Beste aus natürlicher Sprachverarbeitung und Informationsabruf bietet Rag-to-SQL eine zuverlässigere Möglichkeit, die Alltagssprache aus Ihrer Datenbank in sinnvolle Erkenntnisse zu verwandeln.

In diesem Artikel werden wir untersuchen, wie Rag-to-SQL die Art und Weise, wie wir mit Datenbanken interagieren, verändern können, insbesondere mit Google Cloud-Diensten wie BigQuery und Vertex AI.

Lernziele

  • Identifizieren Sie die Einschränkungen von Text-to-SQL-Systemen bei der genauen Erfassung von Benutzerabsichten.
  • Verstehen Sie die Vorteile von Rag-to-SQL als neues Paradigma, um zuverlässigere SQL-Abfragen zu generieren.
  • Implementieren Sie den Rag-to-SQL-Ansatz mit Google Cloud-Diensten wie BigQuery und Vertex AI.
  • Erfahren Sie, wie Sie mehrere Google Cloud-Tools für die Implementierung von Google-Cloud-Tools integrieren und verwenden können.

Dieser Artikel wurde als Teil des Data Science -Blogathons veröffentlicht.

Inhaltsverzeichnis

  • Lernziele
  • Einschränkungen traditioneller Text-zu-SQL-Ansätze
  • Was ist Rag-to-SQL?
  • Einrichten von Rag-to-SQL mit Google Cloud: Eine Schritt-für-Schritt-Anleitung
    • Voraussetzungen für Code
    • Codeflussdiagramm
    • Schritt 1: Installation der erforderlichen Bibliotheken
    • Schritt 2: Konfigurieren Ihres Google Cloud -Projekts und Ihrer Anmeldeinformationen
    • Schritt 3: Erstellen einer Vektordatenbank für das Tabellenschemaspeicher
    • Schritt 4: Instantiating LLM -Modelle für SQL -Abfrage-, Interpretations- und Agentenketten
    • Schritt 5: Konstruktion der SQL -Abfragekette
    • Schritt 6: Verfeinerung der SQL -Kettenausgabe für die Interpretation
    • Schritt 7: Erstellen der Interpretationskette für Abfrageergebnisse
    • Schritt 8: Implementierung der Agentenkette für die dynamische Abfragerouting
  • Abschluss
    • Key Takeaways
  • Häufig gestellte Fragen

Einschränkungen traditioneller Text-zu-SQL-Ansätze

Die Hauptidee hinter Text zu SQL -Modellen von LLM bestand darin, Menschen, die nichts über SQL kennen, mit Datenbank zu interagieren und stattdessen Informationen mit natürlicher Sprache zu erhalten. Der vorhandene SQL -Framework von Text 2 ist hauptsächlich in LLM -Wissen angewiesen, um die Abfrage für natürliche Sprache in SQL -Abfrage umzuwandeln. Dies kann zu einer falschen oder ungültigen Formulierung von SQL -Abfragen führen. Hier kommt der neue Ansatz von SQL zu unserer Rettung, die im nächsten Abschnitt erklärt wird.

Was ist Rag-to-SQL?

Um die Mängeln von Text an SQL zu überwinden, können wir den innovativen Ansatz von RAG auf SQL verwenden. Die Integration von Domäneninformationen zur Datenbank ist das Hauptproblem, mit dem jede Text-zu-SQL-Software konfrontiert ist. Die RAG2SQL -Architektur befasst sich mit dieser Schwierigkeit durch Hinzufügen von kontextbezogenen Daten (Metadaten, DDL, Abfragen und mehr). Diese Daten werden dann „geschult“ und zur Verwendung zur Verfügung gestellt.
Darüber hinaus bewertet der „Retriever“ den relevantesten Kontext, um auf die Benutzerabfrage zu reagieren. Das Endergebnis ist die Präzision stark verbessert.

Einrichten von Rag-to-SQL mit Google Cloud: Eine Schritt-für-Schritt-Anleitung

Befolgen Sie eine detaillierte Anleitung zur Implementierung von Rag-to-SQL-Diensten mit Google Cloud-Diensten wie BigQuery und Vertex AI.

Voraussetzungen für Code

Um diesen Code zu befolgen und auszuführen, müssen Sie Ihr GCP (Google Cloud -Konto mit Zahlungsinformationen) einrichten. Zunächst bieten sie 90 Tage lang kostenlose 300 -$ -Testversion an, sodass keine Gebühren anfallen. Detail für Kontoeinrichtungen: Link

Codeflussdiagramm

Im Folgenden finden Sie das Code -Flussdiagramm, das die verschiedenen Codeblöcke auf einer höheren Ebene beschreibt. Wir können es verweisen, um mitzumachen, während wir fortfahren.

Rag-to-SQL auf Google Cloud

Die Code -Implementierung kann in 3 Hauptblöcke unterteilt werden:

  • SQL -Query -Kette: Diese Kette ist für die Generierung einer geeigneten SQL -Abfrage verantwortlich, die auf der Benutzerfrage und einem relevanten Schema der Tabelle basiert, das aus dem Vektor DB abgerufen wurde.
  • Interpretation Kette: Diese Kette nimmt die SQL -Abfrage aus der vorherigen Kette aus, führt sie in BigQuery aus und verwendet dann die Ergebnisse, um eine Antwort mit einer geeigneten Eingabeaufforderung zu generieren.
  • Agentenkette: Dies ist die endgültige Kette, die die oben genannten zwei Ketten verkapselt. Wenn eine Benutzerfrage einhergeht, entscheidet sich, ob Sie das SQL -Abfrage -Tool aufrufen oder die Frage direkt beantworten sollen. Es leitet die Benutzeranfragen an verschiedenen Tools anhand der Aufgabe weiter, die zur Beantwortung der Frage erforderlich ist.

Schritt 1: Installation der erforderlichen Bibliotheken

In Colab Notebook müssen wir die für diese Implementierung erforderlichen Bibliotheken installieren.

 ! PIP Installieren Sie Langchain == 0.0.340 -Quiet
! PIP Installieren Sie Chromadb == 0.4.13 -Quiet
! PIP Installieren Sie Google-Cloud-BigQuery [Pandas]-Quiet
! PIP Installieren Sie die Google-Cloud-Diplattform-Quiet#importieren Sie CSV
Nach dem Login kopieren

Schritt 2: Konfigurieren Ihres Google Cloud -Projekts und Ihrer Anmeldeinformationen

Jetzt müssen wir einige Variablen deklarieren, um unser GCP -Projekt und große Abfragedatensätze zu initialisieren. Mit diesen Variablen können wir in unserem Notebook auf die Tabellen in großer Abfrage mit GCP zugreifen.

Sie können diese Details in Ihrer GCP -Cloud -Konsole anzeigen. In BigQuery können Sie einen Datensatz erstellen und im Datensatz können Sie eine Tabelle hinzufügen oder hochladen, um Details zu finden. Erstellen Sie die Tabelle erstellen.

 Vertex_project = "Ihre GCP -Projekt -ID" # @param {type: "String"}
Vertex_region = "us-central1" # @param {type: "string"}

BigQuery_dataset = "Big Query -Datensatzname" # @param {type: "String"}
BigQuery_project = "Vertex Project ID" # @param {type: "String"}
Nach dem Login kopieren

Jetzt authentifizieren und melden Sie sich in Ihrem Notebook mit Ihrem GCP -Vertex -KI mit dem folgenden Code in Colab aus.

 von Google.Colab import Auth
auth.authenticate_user ()

Scheitelpunkt importieren
vertexai.init (project = vertex_project, location = vertex_region)
Nach dem Login kopieren

Schritt 3: Erstellen einer Vektordatenbank für das Tabellenschemaspeicher

Jetzt müssen wir einen Vektor -DB erstellen, der ein Schema verschiedener Tabellen in unserem Datensatz enthält, und wir werden einen Retriever auf diesem Vektor -DB erstellen, damit wir Lappen in unseren Workflow einbeziehen können.

Verbinden Sie mit dem BQ -Client in Python und abrufen Schema von Tabellen.

 von Google.Cloud BigQuery importieren
JSON importieren

#Tabellenschemata

bq_client = bigQuery.client (project = vertex_project)
bq_tables = bq_client.list_tables (dataSet = f "{BigQuery_project}. {BigQuery_dataset}"))
Schemas = []
Für BQ_TABLE in BQ_TABLE:
   t = bq_client.get_table (f "{bigQuery_project}. {BigQuery_dataset}. {bq_table.table_id}")
   schema_fields = [f.to_api_repr () für f in t.schema]
   Schema = f "Das Schema für Tabelle {bq_table.table_id} ist das folgende: \ n`` {json.dumps (schema_fields, indent = 1)}` `` `` “
   Schemas.Append (Schema)

print (f "Found {len (Schemas)} Tabellen in Dataset {BigQuery_Project}: {BigQuery_Dataset}")#CSV importieren
Nach dem Login kopieren

Speichern der Schemata im Vektor dB wie Chroma DB. Wir müssen einen Ordner namens " Daten" erstellen

 Aus Langchain.embeddings importieren Sie Scheitelpunkte
von Langchain.VectorStores importieren Chroma

Einbettungen = Vertexaiembeddings ()
Versuchen Sie: # Vermeiden Sie doppelte Dokumente
  vector_store.delete_collection ())
außer:
  drucken ("Nicht nötig, den Vektor Store zu reinigen")
vector_store = chroma.from_texts (Schemas, Einbettung = Einbetten, persist_directory = './data'))
n_docs = len (vector_store.get () ['ids'])
retriever = vector_store.as_retriever (search_kwargs = {'k': 2})
print (f "Der Vektor Store hat {n_docs} dokumente"))
Nach dem Login kopieren

Schritt 4: Instantiating LLM -Modelle für SQL -Abfrage-, Interpretations- und Agentenketten

Wir werden die 3 LLM -Modelle für die 3 verschiedenen Ketten instanziieren.

Das erste Modell ist ein Abfragemodell, das für die Generierung von SQL -Abfragen basierend auf dem Benutzerfragestand und dem Tabellenschema verantwortlich ist, das aus dem Vektor DB ähnlich wie Benutzerfrage abgerufen wird. Dazu verwenden wir "codechat-bison" Modell . Dieses Modell ist auf das Generieren von Code in verschiedenen Codierungssprachen spezialisiert und ist daher für unseren Anwendungsfall geeignet.

Andere 2 Modelle sind Standard-LLM-Modelle in Chatvertexai, nämlich „ Gemini-1.5-Flash-001 “ Dies ist das neueste Gemini-Modell, das für Chat und schnelle Antwort optimiert ist.

 von Langchain.chat_Models importieren Sie Chatvertexai
von Langchain.llms importieren Sie Scheitelpunkte

query_model = chatvertexai (model_name = "codechat-bison", max_output_tokens = 1000)
interpretation_data_model = chatvertexai (max_output_tokens = 1000)
agent_model = chatvertexai (max_output_tokens = 1024)
Nach dem Login kopieren

Schritt 5: Konstruktion der SQL -Abfragekette

Im Folgenden finden Sie die SQL -Eingabeaufforderung, mit der die SQL -Abfrage für die Eingabebremittel -Frage generiert wird.

 SQL_PROMPT = "" "Sie sind ein SQL und ein BigQuery -Experte.

Ihre Aufgabe ist es, eine Abfrage für BigQuery in SQL zu erstellen.

Der folgende Absatz enthält das Schema der Tabelle, die für eine Abfrage verwendet wird. Es ist im JSON -Format codiert.

{Kontext}

Erstellen Sie eine BigQuery SQL -Abfrage für die folgende Benutzereingabe unter Verwendung der obigen Tabelle.
Und verwenden Sie nur Spalten, die im Schema für die SQL -Abfrage erwähnt werden

Der Benutzer und der Agent haben dieses Gespräch bisher geführt:
{chat_history}

Befolgen Sie diese Einschränkungen streng:
- Geben Sie den SQL -Code nur zurück.
- Fügen Sie keine Backticks oder ein Markup hinzu. Schreiben Sie nur die Abfrage als Ausgabe. Nichts anderes.
- Verwenden Sie immer den vollständigen Tabellenpfad, indem Sie `{project}` as project und `{dataset}` als Datensatz verwenden.
- Verwandeln Sie immer Landnamen in den vollständigen Großbuchstaben. Wenn das Land beispielsweise Japan ist, sollten Sie Japan in der Abfrage verwenden.

Benutzereingabe: {Frage}

SQL -Abfrage:
"" "
Nach dem Login kopieren

Jetzt werden wir eine Funktion definieren, die relevante Dokumente abrufen, dh Schemas für die Benutzerfrageingabe.

 von Langchain.schema.VectorStore Import VectorStorerTriever
Def get_documents (Retriever: VectorStorerETRIEVER, Frage: STR) -> STR:
  # Geben Sie nur das erste Dokument zurück
  output = ""
  Für D in retriever.get_relevant_documents (Frage):
    output = d.page_content
    output = "\ n"
    Rückgabeausgabe
Nach dem Login kopieren

Dann definieren wir die LLM -Kette mithilfe der Langchain -Expressionssprach -Syntax. Hinweis Wir definieren die Eingabeaufforderung mit 5 Platzhaltervariablen und später eine teilweise Eingabeaufforderung, indem wir das 2 -Platzhalter -Variablenprojekt und den Datensatz ausfüllen. Der Rest der Variablen wird mit eingehender Anforderungswörterbuch bevölkert, die aus Eingabe, Chat -Historie und der Kontextvariable bestehen.

 vom Bedienerimportartikelgetter
von Langchain.prompts importieren Sie promptemplate
von Langchain.schema import StroutputParser

prompt_template = fordertemplate (
    input_variables = ["Kontext", "chat_history", "Frage", "Projekt", "Dataset"],
    template = sql_prompt)

partial_prompt = prompt_template.Partial (project = bigQuery_project,
                                         DataSet = BigQuery_Dataset)

# Eingabe ist wie {"input": "slow_question", "chat_history": "history"}
docs = {"context": lambda x: get_documents (retriever, x ['Eingabe'])}
FRAGE = {"Frage": itemGetter ("input")}
CHAT_HISTORY = {"CHAT_HISTORY": itemGetter ("chat_history")}
query_chain = docs | Frage | CHAT_HISTORY | partial_prompt | query_model
query = query_chain | StroutputParser ()
Nach dem Login kopieren

Testen wir unsere Kette mithilfe von Callback -Handler von Langchain, wodurch alle Schritte der Kettenausführung im Detail angezeigt werden.

 von Langchain.callbacks.Tracers importieren consolecallbackhandler
# Beispiel
x = {"Eingabe": "Höchste Dauer der Reise, wo die Startstation von Atlantic Ave & Fort Greene Pl", "CHAT_HISTORY": ""}
print (query.invoke (x, config = {'callbacks': [consoleCallbackHandler ()]})) 
Nach dem Login kopieren

Rag-to-SQL auf Google Cloud

Rag-to-SQL auf Google Cloud

Schritt 6: Verfeinerung der SQL -Kettenausgabe für die Interpretation

Wir müssen den obigen SQL -Kettenausgang so verfeinern, dass es auch andere Variablen in den Outp enthält, das dann an die zweite Kette weitergegeben wird - Interpretation der Kette.

 von Langchain.output_Parsers Import -Antwortenschema, StructuredOutputParser
von Langchain.schema.Runnable Import Runnablelambda

#Refine den Kettenausgang, um andere Variablen in die Ausgabe im Wörterbuchformat einzuschließen
def _dict_to_json (x: dict) -> str:
  Return "` `` \ n "json.dumps (x)" \ n`` "

query_response_schema = [
    Antwortenschema (name = "query", Beschreibung = "SQL Abfrage zur Lösung der Benutzerfrage"),),),),),),),)
    Antwortenschema (Name = "Frage", Beschreibung = "Frage vom Benutzer gestellt"),),),),)
    Antwortenschema (Name = "Kontext", Beschreibung = "Dokumente, die aus dem Vektorspeicher abgerufen wurden.")
  ]
query_output_parser = structuredoutputParser.from_Response_schemas (query_response_schema)
query_output_json = docs | Frage | {"Abfrage": Abfrage} | Runnablelambda (_dict_to_json) | StroutputParser ()
query_output = query_output_json | query_output_parser
Nach dem Login kopieren

Versuchen wir, diese Kette auszuführen.

 # Beispiel
x = {"Eingabe": "Gib mir Top 2 Startstationen, an denen die Reisedauer am höchsten war?", "chat_history": ""}
output = query_output.invoke (x) # Ausgabe ist jetzt ein Wörterbuch, Eingabe für die nächste Kette
Nach dem Login kopieren

Rag-to-SQL auf Google Cloud

Oben können wir sehen, dass die Ausgabe der raffinierten Kette eine SQL -Abfrage ist.

Schritt 7: Erstellen der Interpretationskette für Abfrageergebnisse

Jetzt müssen wir die nächste Kette bauen, die die oben definierte SQL -Abfragekette ausgibt. Diese Kette nimmt die SQL -Abfrage aus der vorherigen Kette und führt sie in einer großen Abfrage aus. Anschließend werden ihre Ergebnisse verwendet, um eine Antwort mit der entsprechenden Eingabeaufforderung zu generieren.

 Interpret_prompt = "" "Sie sind ein BigQuery -Experte. Sie sind auch Experte für Daten aus CSV.

Der folgende Absatz beschreibt das Schema der für eine Abfrage verwendeten Tabelle. Es ist im JSON -Format codiert.

{Kontext}

Ein Benutzer stellte diese Frage:
{Frage}

Um die Antwort zu finden, wurde die folgende SQL -Abfrage in BigQuery ausgeführt:
`` `
{Abfrage}
`` `

Das Ergebnis dieser Abfrage war die folgende Tabelle im CSV -Format:
`` `
{Ergebnis}
`` `

Geben Sie basierend auf diesen Ergebnissen eine kurze Antwort auf die Benutzerfrage.

Befolgen Sie diese Einschränkungen streng:
- Fügen Sie keine Erklärung darüber hinzu, wie die Antwort erhalten wird. Schreiben Sie einfach die Antwort.
- Extrahieren Sie einen beliebigen Wert, der sich nur aus dem Ergebnis der Abfrage bezieht. Verwenden Sie keine andere Datenquelle.
- Schreiben Sie einfach die Antwort, lassen Sie die Frage aus Ihrer Antwort weg. Dies ist ein Chat. Geben Sie einfach die Antwort an.
- Wenn Sie die Antwort im Ergebnis nicht finden können, machen Sie keine Daten aus. Sagen Sie einfach "Ich kann die Antwort nicht finden."
"" "
Nach dem Login kopieren
 von Google.Cloud BigQuery importieren
Def get_bq_csv (bq_client: bigQuery.client, Abfrage: str) -> str:
  Cleaned_query = Clean_query (Abfrage)
  df = bq_client.Query (cleaned_query, location = "us"). to_dataframe ()
  Rückgabe df.to_csv (index = false)


Def Clean_query (Abfrage: STR):
  query = query.replace ("` `` SQL "," ")
  cleaned_query = query.replace ("" "" "", "")

  Rückkehr Cleaned_Query
Nach dem Login kopieren

Wir werden zwei Funktionen definieren. Eines ist Clean_Query - dies wird die SQL -Abfrage von Apostrophes und anderen unnötigen Zeichen und andere Get_BQ_CSV reinigen. Dadurch wird die gereinigte SQL -Abfrage in einer großen Abfrage ausgeführt und die Ausgangstabelle im CSV -Format erhalten.

 # Erhalten Sie die Ausgabe der vorherigen Kette


query = {"query": itemGetter ("query")}
context = {"context": itemGetter ("context")}
Frage = {"Frage": itemGetter ("Frage")}
#Cleaned_query = {"Ergebnis": Lambda X: Clean_query (x ["Abfrage"])}
query_result = {"result": lambda x: get_bq_csv (bq_client, x ["query"])}

fordert = promptTemplate (
    input_variables = ["Frage", "Abfrage", "Ergebnis", "Kontext"],
    template = interpretation_prompt)

run_bq_chain = context | Frage | Abfrage | query_result | prompt
run_bq_result = run_bq_chain | interpret_data_model | StroutputParser ()
Nach dem Login kopieren

Lassen Sie uns die Kette ausführen und sie testen.

 # Beispiel
x = {"Eingabe": "Gib mir Top 2 Startstationen, an denen die Reisedauer am höchsten war?", "chat_history": ""}
Final_Response = run_bq_result.invoke (query_output.invoke (x))
print (Final_response)
Nach dem Login kopieren

Rag-to-SQL auf Google Cloud

Schritt 8: Implementierung der Agentenkette für die dynamische Abfragerouting

Jetzt werden wir die endgültige Kette erstellen, die die Agentenkette ist. Wenn ein Benutzer eine Frage stellt, entscheidet er, ob das SQL -Query -Tool verwendet wird oder sie direkt beantwortet. Grundsätzlich sendet es Benutzeranfragen an verschiedene Tools gemäß den Arbeiten, die abgeschlossen werden müssen, um die Anfrage des Benutzers zu beantworten.

Wir definieren eine Agent_Memory, eine Agent -Eingabeaufforderung, eine Werkzeugfunktion.

 von Langchain.Memory Import ConvertationBufferWindowMemory

Agent_Memory = ConversationBufferWindowMemory (
    mes MEAME_KEY = "CHAT_HISTORY",
    k = 10,
    return_messages = true)
Nach dem Login kopieren
 Agent_prompt = "" "Sie sind ein sehr mächtiger Assistent, der Fragen mit BigQuery beantworten kann.

Sie können das Tool user_question_tool aufrufen, um Fragen mit BigQuery zu beantworten.

Verwenden Sie immer die Tools, um die Fragen zu beantworten. Verwenden Sie den Chat -Verlauf für den Kontext. Versuchen Sie niemals, andere externe Informationen zu verwenden.

Angenommen, der Benutzer kann mit Rechtschreibfehler schreiben und die Schreibweise des Benutzers beheben, bevor die Frage an ein Tool weitergegeben wird.

Erwähnen Sie nicht, welches Tool Sie in Ihrer Antwort verwendet haben.
"" "
Nach dem Login kopieren
 aus Langchain.tools Import -Tool
von Langchain.callbacks.Tracers importieren consolecallbackhandler

@Werkzeug
Def User_question_tool (Frage) -> Str:
  "" Nützlich, um Fragen der natürlichen Sprache von Benutzern zu beantworten, die BigQuery verwenden. "" ""
  config = {'callbacks': [consoleCallbackHandler ()]}
  config = {}
  memory = agent_memory.buffer_as_str.strip ()
  FRAGE = {"Eingabe": Frage, "chat_history": Speicher}
  query = query_output.invoke (Frage, config = config)
  print ("\ n \ n ****************** \ n \ n"))
  print (query ['query'])
  print ("\ n \ n ****************** \ n \ n"))
  result = run_bq_result.invoke (Abfrage, config = config)
  Rückgabeergebnis.strip ()

Nach dem Login kopieren

Wir bringen jetzt alle Hauptkomponenten des Agenten zusammen und initialisieren den Agenten.

 von Langchain.agents Import AgentType, Initialize_agent, AgentExecutor

Agent_kwgards = {"System_Message": Agent_prompt}
Agent_tools = [user_question_tool]

agent_memory.clear ()

Agent = initialize_agent (
    Tools = Agent_tools,
    llm = agent_model,
    Agent = AgentType.chat_ConverSational_react_description,
    memory = agent_memory,
    Agent_kwgards = Agent_kwgards,
    max_iterations = 5,
    Early_Stopping_method = 'generieren',
    wörtlich = wahr)
Nach dem Login kopieren

Lassen Sie uns jetzt den Agenten ausführen.

 Q = "Gib mir Top 2 Startstationen, an denen die Reisedauer am höchsten war?"
Agent.invoke (q) 
Nach dem Login kopieren

Rag-to-SQL auf Google Cloud

Rag-to-SQL auf Google Cloud

Follow-up-Frage an Agent.

 q = "Was ist die Kapazität für jeden dieser Stationsnamen?"
Agent.invoke (q) 
Nach dem Login kopieren

Rag-to-SQL auf Google Cloud

Rag-to-SQL auf Google Cloud

Beobachtungen

Der Agent war genau in der Lage, die komplexe Frage zu verarbeiten und korrekte Antworten für die Folge -up -Frage basierend auf dem Chat -Verlauf zu generieren. Anschließend wurde eine andere Tabelle verwendet, um Kapazitätsinformationen von Citi -Bikes zu erhalten.

Abschluss

Der Rag-to-SQL-Ansatz stellt einen erheblichen Fortschritt bei der Bekämpfung der Einschränkungen herkömmlicher Text-zu-SQL-Modelle durch Einbeziehung von kontextbezogenen Daten und der Nutzung von Abruftechniken dar. Diese Methodik verbessert die Abfragegenauigkeit, indem relevante Schemainformationen aus Vektor -Datenbanken abgerufen werden und eine genauere SQL -Erzeugung ermöglicht werden. Durch die Implementierung von Rag-to-SQL in Google Cloud-Diensten wie BigQuery und Vertex AI zeigt die Skalierbarkeit und Effektivität in realen Anwendungen. Durch die Automatisierung des Entscheidungsprozesses bei der Abfragehandhabung eröffnet Rag-to-SQL nicht technische Benutzer, um mit Datenbanken nahtlos zu interagieren und gleichzeitig eine hohe Genauigkeit beizubehalten.

Key Takeaways

  • Übereinstimmende Einschränkungen von Text-zu-SQL-Einschränkungen befassen sich mit den gängigen Fallstricken herkömmlicher Text-zu-SQL-Modelle durch Integration von Metadaten.
  • Das agentenbasierte System entscheidet effizient, wie Benutzeranfragen verarbeitet und die Benutzerfreundlichkeit verbessert.
  • Mit RAG-to-SQL können nicht-technische Benutzer komplexe SQL-Abfragen mit natürlichen Spracheingaben generieren.
  • Der Ansatz wird erfolgreich mit Diensten wie BigQuery und Vertex AI implementiert.

Häufig gestellte Fragen

Q1. Ist der GCP -Vertex -AI -Zugriff kostenlos?

A. Nein, aber Sie können eine Testzeit von 90 Tagen mit 300 $ Credits erhalten, wenn Sie sich zum ersten Mal registrieren und nur eine Kartendaten zur Erhöhung des Zugriffs angeben. Es werden keine Gebühren von der Karte abgezogen, und selbst wenn Sie Dienste nutzen, die über 300 $ Credits konsumiert werden, wird Google Sie auffordert, ein Zahlungskonto zu aktivieren, damit Sie den Dienst nutzen können. Es gibt also keinen automatischen Abzug des Betrags.

Q2. Was ist der Hauptvorteil der Verwendung von Rag zu SQL?

A. Dies ermöglicht es uns, das Tabellenschema zu automatisieren, das dem LLM zugeführt werden soll, wenn wir mehrere Tabellen verwenden, die wir nicht alle Tabellenschemata gleichzeitig füttern müssen. Basierend auf dem Benutzerabfrage kann das entsprechende Tabellenschema aus dem Lappen abgerufen werden. Daher erhöht die Effizienz gegenüber herkömmlichem Text mit SQL -Systemen.

Q3. Wie können Agenten für diesen Anwendungsfall nützlich sein?

A. Wenn wir einen ganzheitlichen Chatbot bauen, ist möglicherweise eine Menge anderer Werkzeuge abgesehen von SQL Query -Tool erforderlich. So können wir den Agenten nutzen und ihm mehrere Tools wie Websuche, Datenbank SQL Query -Tool, andere Lag -Tools oder Funktionen aufrufen, die API -Tools aufrufen. Dies ermöglicht es, verschiedene Arten von Benutzeranfragen zu verarbeiten, die auf der Aufgabe basieren, die erledigt werden muss, um auf die Benutzerabfrage zu reagieren.

Die in diesem Artikel gezeigten Medien sind nicht im Besitz von Analytics Vidhya und werden nach Ermessen des Autors verwendet.

Das obige ist der detaillierte Inhalt vonRag-to-SQL auf Google Cloud. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage