Gemini 3 Pro + Milvus: Aufbau eines robusteren RAG mit fortgeschrittenem Reasoning und multimodaler Leistung
Googles Gemini 3 Pro wurde mit der seltenen Art von Version veröffentlicht, die die Erwartungen von Entwicklern wirklich verĂ€ndert - nicht nur ein Hype, sondern Funktionen, die die Möglichkeiten von natĂŒrlichsprachlichen Schnittstellen wesentlich erweitern. Es verwandelt "Beschreiben Sie die gewĂŒnschte App" in einen ausfĂŒhrbaren Workflow: dynamisches Tool-Routing, mehrstufige Planung, API-Orchestrierung und interaktive UX-Generierung - alles nahtlos aneinandergereiht. Kein anderes Modell kommt der Produktionsreife von Vibe Coding so nahe wie dieses.
Und die Zahlen untermauern diese Aussage. Gemini 3 Pro zeigt herausragende Ergebnisse in fast allen wichtigen Benchmarks:
Humanity's Last Exam: 37,5 % ohne Tools, 45,8 % mit Tools - der nÀchste Konkurrent liegt bei 26,5 %.
MathArena Apex: 23,4 %, wÀhrend die meisten Modelle nicht einmal 2 % erreichen.
ScreenSpot-Pro: 72,7% Genauigkeit, fast doppelt so hoch wie der nÀchstbeste Wert von 36,2%.
Vending-Bench 2: Durchschnittlicher Nettowert von $5.478,16, etwa 1,4Ă ĂŒber dem zweiten Platz.
Weitere Benchmark-Ergebnisse finden Sie in der Tabelle unten.
Diese Kombination aus tiefgreifenden Schlussfolgerungen, starker Nutzung von Werkzeugen und multimodaler Gewandtheit macht Gemini 3 Pro zu einer natĂŒrlichen Lösung fĂŒr die abrufunterstĂŒtzte Generierung (RAG). In Kombination mit Milvus, der hochleistungsfĂ€higen Open-Source-Vektordatenbank, die fĂŒr die semantische Suche in Milliardenhöhe entwickelt wurde, erhalten Sie eine Retrieval-Schicht, die Antworten begrĂŒndet, sauber skaliert und auch bei hoher Arbeitslast produktionssicher bleibt.
In diesem Beitrag erlÀutern wir, was in Gemini 3 Pro neu ist, warum es die RAG-Workflows verbessert und wie Sie eine saubere, effiziente RAG-Pipeline mit Milvus als Retrieval-Backbone aufbauen können.
Wesentliche Neuerungen in Gemini 3 Pro
Gemini 3 Pro fĂŒhrt eine Reihe wesentlicher Verbesserungen ein, die die Art und Weise, wie das Modell GrĂŒnde liefert, Aufgaben erstellt und ausfĂŒhrt und wie es mit den Benutzern interagiert, neu gestalten. Diese Verbesserungen lassen sich in vier groĂe Leistungsbereiche unterteilen:
Multimodales Verstehen und Reasoning
Gemini 3 Pro stellt neue Rekorde bei wichtigen multimodalen Benchmarks auf, darunter ARC-AGI-2 fĂŒr visuelles Reasoning, MMMU-Pro fĂŒr cross-modales Verstehen und Video-MMMU fĂŒr VideoverstĂ€ndnis und Wissenserwerb. Das Modell fĂŒhrt auch Deep Think ein, einen erweiterten Denkmodus, der eine strukturierte, mehrstufige logische Verarbeitung ermöglicht. Dies fĂŒhrt zu einer deutlich höheren Genauigkeit bei komplexen Problemen, bei denen herkömmliche Denkkettenmodelle versagen.
Code-Generierung
Das Modell hebt die generative Kodierung auf ein neues Niveau. Gemini 3 Pro kann interaktive SVGs, vollstĂ€ndige Webanwendungen, 3D-Szenen und sogar funktionale Spiele - einschlieĂlich Minecraft-Ă€hnlicher Umgebungen und browserbasiertem Billard - mit einer einzigen natĂŒrlichsprachlichen Eingabeaufforderung erzeugen. Vor allem die Front-End-Entwicklung profitiert davon: Das Modell kann bestehende UI-Designs mit hoher Wiedergabetreue neu erstellen oder einen Screenshot direkt in produktionsreifen Code ĂŒbersetzen, was die iterative UI-Arbeit erheblich beschleunigt.
KI-Agenten und Tool-Nutzung
Mit der Erlaubnis des Nutzers kann Gemini 3 Pro auf die Daten des Google-GerĂ€ts des Nutzers zugreifen, um langfristige, mehrstufige Aufgaben wie die Planung von Reisen oder die Buchung von Mietwagen durchzufĂŒhren. Diese Agenten-FĂ€higkeit spiegelt sich in seiner starken Leistung auf der Vending-Bench 2 wider, einem Benchmark, der speziell fĂŒr Stresstests der Tool-Nutzung mit langem Zeithorizont entwickelt wurde. Das Modell unterstĂŒtzt auch professionelle Agenten-Workflows, einschlieĂlich der AusfĂŒhrung von Terminalbefehlen und der Interaktion mit externen Tools ĂŒber klar definierte APIs.
Generative BenutzeroberflÀche
Gemini 3 Pro geht ĂŒber das herkömmliche Modell mit einer Frage und einer Antwort hinaus und fĂŒhrt eine generative BenutzeroberflĂ€che ein, bei der das Modell ganze interaktive Erlebnisse dynamisch aufbauen kann. Anstatt statischen Text zurĂŒckzugeben, kann es vollstĂ€ndig angepasste Schnittstellen generieren - zum Beispiel einen umfangreichen, anpassbaren Reiseplaner - direkt als Reaktion auf Benutzeranweisungen. Dadurch werden LLMs von passiven Ansprechpartnern zu aktiven Schnittstellengeneratoren.
Gemini 3 Pro auf dem PrĂŒfstand
Neben den Benchmark-Ergebnissen haben wir eine Reihe praktischer Tests durchgefĂŒhrt, um zu verstehen, wie sich Gemini 3 Pro in realen ArbeitsablĂ€ufen verhĂ€lt. Die Ergebnisse verdeutlichen, wie sein multimodales VerstĂ€ndnis, seine generativen FĂ€higkeiten und seine langfristige Planung einen praktischen Nutzen fĂŒr Entwickler darstellen.
Multimodales VerstÀndnis
Gemini 3 Pro zeigt eine beeindruckende Vielseitigkeit in Bezug auf Text, Bilder, Video und Code. In unserem Test haben wir ein Zilliz-Video direkt von YouTube hochgeladen. Das Modell verarbeitete den gesamten Clip - einschlieĂlich der ErzĂ€hlung, der ĂbergĂ€nge und des Bildschirmtextes - in etwa 40 Sekunden, was fĂŒr lange multimodale Inhalte ungewöhnlich schnell ist.
Die internen Auswertungen von Google zeigen ein Ă€hnliches Verhalten: Gemini 3 Pro verarbeitete handgeschriebene Rezepte in mehreren Sprachen, transkribierte und ĂŒbersetzte jedes einzelne und stellte sie in einem gemeinsam nutzbaren Familienrezeptbuch zusammen.
Null-Prozent-Aufgaben
Gemini 3 Pro kann vollstĂ€ndig interaktive Web-UIs generieren, ohne dass zuvor Beispiele oder ein GerĂŒst erstellt wurden. Als wir aufgefordert wurden, ein ausgefeiltes, retro-futuristisches 3D-Raumschiff-Webspiel zu erstellen, produzierte das Modell eine komplette interaktive Szene: ein neonlila Raster, Schiffe im Cyberpunk-Stil, leuchtende Partikeleffekte und flĂŒssige Kamerasteuerung - alles in einer einzigen Zero-Shot-Antwort.
Komplexe Aufgabenplanung
Das Modell zeigt auch eine bessere langfristige Aufgabenplanung als viele seiner Konkurrenten. In unserem Posteingangstest verhielt sich Gemini 3 Pro Ă€hnlich wie ein KI-Verwaltungsassistent: Er kategorisierte unĂŒbersichtliche E-Mails in Projektkategorien, erstellte umsetzbare VorschlĂ€ge (Antwort, Wiedervorlage, Archiv) und prĂ€sentierte eine saubere, strukturierte Zusammenfassung. Wenn der Plan des Modells feststand, konnte der gesamte Posteingang mit einem einzigen BestĂ€tigungsklick geleert werden.
Wie man ein RAG-System mit Gemini 3 Pro und Milvus aufbaut
Gemini 3 Pro ist mit seiner verbesserten Argumentation, seinem multimodalen VerstĂ€ndnis und seinen starken FĂ€higkeiten zur Werkzeugnutzung eine hervorragende Grundlage fĂŒr leistungsstarke RAG-Systeme.
In Kombination mit Milvus, der leistungsstarken Open-Source-Vektordatenbank fĂŒr die semantische Suche in groĂem MaĂstab, erhalten Sie eine klare Aufgabenteilung: Gemini 3 Pro kĂŒmmert sich um die Interpretation, die Schlussfolgerungen und die Generierung, wĂ€hrend Milvus eine schnelle, skalierbare Abrufschicht bereitstellt, die die Antworten auf Ihre Unternehmensdaten abstimmt. Diese Kombination eignet sich hervorragend fĂŒr produktionsreife Anwendungen wie interne Wissensdatenbanken, Dokumentenassistenten, Kunden-Support-Kopiloten und domĂ€nenspezifische Expertensysteme.
Voraussetzungen
Bevor Sie Ihre RAG-Pipeline erstellen, stellen Sie sicher, dass die folgenden Python-Bibliotheken installiert sind oder auf die neuesten Versionen aktualisiert wurden:
pymilvus - das offizielle Milvus Python SDK
google-generativeai - die Gemini 3 Pro Client-Bibliothek
requests - fĂŒr die Verarbeitung von HTTP-Aufrufen, falls erforderlich
tqdm - fĂŒr Fortschrittsbalken wĂ€hrend der Aufnahme von DatensĂ€tzen
! pip install --upgrade pymilvus google-generativeai requests tqdm
Melden Sie sich anschlieĂend bei Google AI Studio an, um Ihren API-SchlĂŒssel zu erhalten.
import os
os.environ["GEMINI_API_KEY"] = "**********"
Vorbereiten des Datensatzes
FĂŒr dieses Tutorial verwenden wir den FAQ-Abschnitt aus der Milvus 2.4.x Dokumentation als private Wissensbasis fĂŒr unser RAG-System.
Laden Sie das Dokumentationsarchiv herunter und entpacken Sie es in einen Ordner namens milvus_docs.
! wget https://github.com/milvus-io/milvus-docs/releases/download/v2.4.6-preview/milvus_docs_2.4.x_en.zip
! unzip -q milvus_docs_2.4.x_en.zip -d milvus_docs
Laden Sie alle Markdown-Dateien aus dem Pfad milvus_docs/en/faq. FĂŒr jedes Dokument wenden wir eine einfache Aufteilung an, die auf # Ăberschriften basiert, um die Hauptabschnitte innerhalb jeder Markdown-Datei grob zu trennen.
from glob import glob
text_lines = []
for file_path in glob("milvus_docs/en/faq/*.md", recursive=True):
with open(file_path, "r") as file:
file_text = file.read()
text_lines += file_text.split("# ")
LLM und Einbettungsmodell einrichten
FĂŒr dieses Lernprogramm verwenden wir gemini-3-pro-preview als LLM und text-embedding-004 als Einbettungsmodell.
import google.generativeai as genai
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
gemini_model = genai.GenerativeModel("gemini-3-pro-preview")
response = gemini_model.generate_content("who are you")
print(response.text)
Antwort des Modells: Ich bin Gemini, ein groĂes Sprachmodell, das von Google entwickelt wurde.
Sie können eine schnelle ĂberprĂŒfung durchfĂŒhren, indem Sie eine Testeinbettung erzeugen und deren DimensionalitĂ€t zusammen mit den ersten Werten ausgeben:
test_embeddings = genai.embed_content(
model="models/text-embedding-004", content=["This is a test1", "This is a test2"]
)["embedding"]
embedding_dim = len(test_embeddings[0])
print(embedding_dim)
print(test_embeddings[0][:10])
Testvektor-Ausgabe:
768
[0.013588584, -0.004361838, -0.08481652, -0.039724775, 0.04723794, -0.0051557426, 0.026071774, 0.045514572, -0.016867816, 0.039378334]
Laden von Daten in Milvus
Erstellen einer Sammlung
from pymilvus import MilvusClient
milvus_client = MilvusClient(uri="./milvus_demo.db")
collection_name = "my_rag_collection"
Bei der Erstellung einer MilvusClient können Sie je nach Umfang und Umgebung aus drei Konfigurationsoptionen wÀhlen:
Lokaler Modus (Milvus Lite): Setzen Sie den URI auf einen lokalen Dateipfad (z. B.
./milvus.db). Dies ist der einfachste Weg, um loszulegen - Milvus Lite speichert automatisch alle Daten in dieser Datei.Selbstgehostetes Milvus (Docker oder Kubernetes): FĂŒr gröĂere DatensĂ€tze oder Produktions-Workloads können Sie Milvus auf Docker oder Kubernetes ausfĂŒhren. Setzen Sie die URI auf Ihren Milvus-Server-Endpunkt, z. B.
http://localhost:19530.Zilliz Cloud (der vollstĂ€ndig verwaltete Milvus-Dienst): Wenn Sie eine verwaltete Lösung bevorzugen, verwenden Sie Zilliz Cloud. Setzen Sie den URI auf Ihren öffentlichen Endpunkt und geben Sie Ihren API-SchlĂŒssel als Authentifizierungstoken an.
Bevor Sie eine neue Sammlung erstellen, prĂŒfen Sie zunĂ€chst, ob sie bereits existiert. Falls ja, löschen Sie sie und erstellen Sie sie neu, um eine saubere Einrichtung zu gewĂ€hrleisten.
if milvus_client.has_collection(collection_name):
milvus_client.drop_collection(collection_name)
Erstellen Sie eine neue Sammlung mit den angegebenen Parametern.
Wenn kein Schema angegeben wird, generiert Milvus automatisch ein Standard-ID-Feld als PrimĂ€rschlĂŒssel und ein Vektorfeld zum Speichern von Einbettungen. Es bietet auch ein reserviertes dynamisches JSON-Feld, das alle zusĂ€tzlichen Felder erfasst, die nicht im Schema definiert sind.
milvus_client.create_collection(
collection_name=collection_name,
dimension=embedding_dim,
metric_type="COSINE",
consistency_level="Strong", # Strong consistency level
)
Daten einfĂŒgen
Iterieren Sie jeden Texteintrag, erzeugen Sie seinen Einbettungsvektor und fĂŒgen Sie die Daten in Milvus ein. In diesem Beispiel fĂŒgen wir ein zusĂ€tzliches Feld namens text ein. Da es im Schema nicht vordefiniert ist, speichert Milvus es automatisch unter Verwendung des dynamischen JSON-Feldes, ohne dass zusĂ€tzliche Einstellungen erforderlich sind.
from tqdm import tqdm
data = []
doc_embeddings = genai.embed_content(
model="models/text-embedding-004", content=text_lines
)["embedding"]
for i, line in enumerate(tqdm(text_lines, desc="Creating embeddings")):
data.append({"id": i, "vector": doc_embeddings[i], "text": line})
milvus_client.insert(collection_name=collection_name, data=data)
Beispielhafte Ausgabe:
Creating embeddings: 100%|âââââââââââââââââââââââââ| 72/72 [00:00<00:00, 431414.13it/s]
{'insert_count': 72, 'ids': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71], 'cost': 0}
Aufbau des RAG-Workflows
Relevante Daten abrufen
Um den Abruf zu testen, stellen wir eine hĂ€ufig gestellte Frage ĂŒber Milvus.
question = "How is data stored in milvus?"
Durchsuchen Sie die Sammlung nach der Anfrage und geben Sie die 3 relevantesten Ergebnisse zurĂŒck.
question_embedding = genai.embed_content(
model="models/text-embedding-004", content=question
)["embedding"]
search_res = milvus_client.search(
collection_name=collection_name,
data=[question_embedding],
limit=3, # Return top 3 results
search_params={"metric_type": "COSINE", "params": {}}, # Inner product distance
output_fields=["text"], # Return the text field
)
import json
retrieved_lines_with_distances = [
(res["entity"]["text"], res["distance"]) for res in search_res[0]
]
print(json.dumps(retrieved_lines_with_distances, indent=4))
Die Ergebnisse werden in der Reihenfolge der Ăhnlichkeit zurĂŒckgegeben, von der gröĂten bis zur geringsten Ăhnlichkeit.
[
[
" Where does Milvus store data?\n\nMilvus deals with two types of data, inserted data and metadata. \n\nInserted data, including vector data, scalar data, and collection-specific schema, are stored in persistent storage as incremental log. Milvus supports multiple object storage backends, including [MinIO](
https://min.io/
), [AWS S3](
https://aws.amazon.com/s3/?nc1=h_ls
), [Google Cloud Storage](
https://cloud.google.com/storage?hl=en#object-storage-for-companies-of-all-sizes
) (GCS), [Azure Blob Storage](
https://azure.microsoft.com/en-us/products/storage/blobs
), [Alibaba Cloud OSS](
https://www.alibabacloud.com/product/object-storage-service
), and [Tencent Cloud Object Storage](
https://www.tencentcloud.com/products/cos
) (COS).\n\nMetadata are generated within Milvus. Each Milvus module has its own metadata that are stored in etcd.\n\n###",
0.8048489093780518
],
[
"Does the query perform in memory? What are incremental data and historical data?\n\nYes. When a query request comes, Milvus searches both incremental data and historical data by loading them into memory. Incremental data are in the growing segments, which are buffered in memory before they reach the threshold to be persisted in storage engine, while historical data are from the sealed segments that are stored in the object storage. Incremental data and historical data together constitute the whole dataset to search.\n\n###",
0.757495105266571
],
[
"What is the maximum dataset size Milvus can handle?\n\n \nTheoretically, the maximum dataset size Milvus can handle is determined by the hardware it is run on, specifically system memory and storage:\n\n- Milvus loads all specified collections and partitions into memory before running queries. Therefore, memory size determines the maximum amount of data Milvus can query.\n- When new entities and and collection-related schema (currently only MinIO is supported for data persistence) are added to Milvus, system storage determines the maximum allowable size of inserted data.\n\n###",
0.7453694343566895
]
]
Erzeugen einer RAG-Antwort mit dem LLM
Nach dem Abrufen der Dokumente konvertieren Sie diese in ein String-Format
context = "\n".join(
[line_with_distance[0] for line_with_distance in retrieved_lines_with_distances]
)
Versehen Sie den LLM mit einem Systemprompt und einem Benutzerprompt, die beide aus den von Milvus abgerufenen Dokumenten erstellt wurden.
SYSTEM_PROMPT = """
Human: You are an AI assistant. You are able to find answers to the questions from the contextual passage snippets provided.
"""
USER_PROMPT = f"""
Use the following pieces of information enclosed in <context> tags to provide an answer to the question enclosed in <question> tags.
<context>
{context}
</context>
<question>
{question}
</question>
"""
Verwenden Sie das Modell gemini-3-pro-preview zusammen mit diesen Prompts, um die endgĂŒltige Antwort zu generieren.
gemini_model = genai.GenerativeModel(
"gemini-3-pro-preview", system_instruction=SYSTEM_PROMPT
)
response = gemini_model.generate_content(USER_PROMPT)
print(response.text)
Anhand der Ausgabe können Sie sehen, dass Gemini 3 Pro eine klare, gut strukturierte Antwort auf der Grundlage der abgerufenen Informationen erzeugt.
Based on the provided documents, Milvus stores data in the following ways:
* **Inserted Data:** Vector data, scalar data, and collection-specific schema are stored in persistent storage as an incremental log. Milvus supports multiple object storage backends for this purpose, including:
* MinIO
* AWS S3
* Google Cloud Storage (GCS)
* Azure Blob Storage
* Alibaba Cloud OSS
* Tencent Cloud Object Storage (COS)
* **Metadata:** Metadata generated within Milvus modules is stored in **etcd**.
* **Memory Buffering:** Incremental data (growing segments) are buffered in memory before being persisted, while historical data (sealed segments) resides in object storage but is loaded into memory for querying.
Hinweis: Gemini 3 Pro ist derzeit nicht fĂŒr Free-Tier-Benutzer verfĂŒgbar. Klicken Sie hier fĂŒr weitere Details.
Sie können stattdessen ĂŒber OpenRouter darauf zugreifen:
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="<OPENROUTER_API_KEY>",
)
response2 = client.chat.completions.create(
model="google/gemini-3-pro-preview",
messages=[
{
"role": "system",
"content": SYSTEM_PROMPT
},
{
"role": "user",
"content": USER_PROMPT
}
],
extra_body={"reasoning": {"enabled": True}}
)
response_message = response2.choices[0].message
print(response_message.content)
One More Thing: Vibe Coding mit Google Antigravity
Zusammen mit Gemini 3 Pro stellte Google Google Antigravity vor, eine Videocoding-Plattform, die autonom mit Ihrem Editor, Terminal und Browser interagiert. Im Gegensatz zu frĂŒheren KI-unterstĂŒtzten Tools, die nur einzelne Anweisungen verarbeiten, arbeitet Antigravity auf einer aufgabenorientierten Ebene - Entwickler können angeben , was sie erstellen möchten, wĂ€hrend das System das Wie verwaltet und den gesamten Arbeitsablauf von Anfang bis Ende orchestriert.
Herkömmliche KI-Codierungs-Workflows generierten in der Regel isolierte Schnipsel, die von den Entwicklern noch geprĂŒft, integriert, debuggt und manuell ausgefĂŒhrt werden mussten. Antigravity Ă€ndert diese Dynamik. Sie können einfach eine Aufgabe beschreiben - z. B. "Erstellen Sie ein einfaches Haustier-Interaktionsspiel " - und das System zerlegt die Anfrage, generiert den Code, fĂŒhrt Terminalbefehle aus, öffnet einen Browser, um das Ergebnis zu testen, und iteriert, bis es funktioniert. Damit wird die KI von einer passiven AutovervollstĂ€ndigungsmaschine zu einem aktiven Entwicklungspartner, der Ihre Vorlieben lernt und sich mit der Zeit an Ihren persönlichen Entwicklungsstil anpasst.
Die Vorstellung, dass ein Agent direkt mit einer Datenbank zusammenarbeitet, ist nicht weit hergeholt. Mit einem Toolaufruf ĂŒber MCP könnte eine KI schlieĂlich aus einer Milvus-Datenbank lesen, eine Wissensdatenbank zusammenstellen und sogar ihre eigene Abrufpipeline autonom verwalten. In vielerlei Hinsicht ist diese VerĂ€nderung sogar noch bedeutsamer als das Modell-Upgrade selbst: Sobald eine KI in der Lage ist, eine Beschreibung auf Produktebene in eine Abfolge von ausfĂŒhrbaren Aufgaben umzuwandeln, verlagert sich der menschliche Aufwand ganz natĂŒrlich auf die Definition von Zielen, EinschrĂ€nkungen und die Frage, wie "Korrektheit" aussieht - das Denken auf höherer Ebene, das die Produktentwicklung wirklich vorantreibt.
Bereit zur Entwicklung?
Wenn Sie bereit sind, es auszuprobieren, folgen Sie unserem Schritt-fĂŒr-Schritt-Tutorial und erstellen Sie noch heute ein RAG-System mit Gemini 3 Pro + Milvus.
Haben Sie Fragen oder möchten Sie eine Funktion genauer kennenlernen? Treten Sie unserem Discord-Kanal bei oder stellen Sie Fragen auf GitHub. Sie können auch eine 20-minĂŒtige persönliche Sitzung buchen, um Einblicke, Anleitung und Antworten auf Ihre Fragen durch Milvus Office Hours zu erhalten.
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word



