Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2025 (17.x)
Azure SQL Database
SQL database in Microsoft Fabric
AI_GENERATE_CHUNKS ist eine Tabellenwertfunktion, die "Blöcke" oder Fragmente von Text basierend auf einem Typ, einer Größe und einem Quellausdruck erstellt.
Kompatibilitätsebene 170
AI_GENERATE_CHUNKS erfordert, dass die Kompatibilitätsstufe mindestens 170 ist. Wenn die Ebene kleiner als 170 ist, kann das Datenbankmodul die AI_GENERATE_CHUNKS Funktion nicht finden.
Informationen zum Ändern der Kompatibilitätsebene einer Datenbank finden Sie unter "Anzeigen" oder "Ändern der Kompatibilitätsebene einer Datenbank".
Syntax
Transact-SQL-Syntaxkonventionen
AI_GENERATE_CHUNKS (source = text_expression
, chunk_type = FIXED
[ , chunk_size = numeric_expression ]
[ , overlap = numeric_expression ]
[ , enable_chunk_set_id = numeric_expression ]
)
Argumente
Quelle
Ein Ausdruck eines beliebigen Zeichentyps (z. B . nvarchar, varchar, nchar oder char).
chunk_type
Ein Zeichenfolgenliteral, das den Typ oder die Methode benennt, um den Text/das Dokument zu blöcken und kann nicht oder ein Wert aus einer Spalte sein NULL .
Akzeptierte Werte für diese Version:
FIXED
chunk_size
Ist chunk_type dies FIXEDder Fall, legt dieser Parameter die Zeichenanzahl der einzelnen Blöcke fest, die als Variable, ein Literal oder einen skalaren Ausdruck vom Typ "tinyint", "smallint", " int" oder "bigint" angegeben sind.
chunk_size darf weder negativ noch null (NULL) sein0. Dieser Parameter ist auch erforderlich , wenn eins chunk_type verwendet FIXEDwird.
Überlappung
Der Überlappungsparameter bestimmt den Prozentsatz des vorhergehenden Texts, der im aktuellen Abschnitt enthalten sein soll. Dieser Prozentsatz wird auf den chunk_size Parameter angewendet, um die Größe in Zeichen zu berechnen. Der Überlappungswert kann als Variable, ein Literal oder ein skalarer Ausdruck vom Typ "tinyint", "smallint", "int" oder "bigint" angegeben werden. Es muss eine ganze Zahl zwischen Null (0) und 50 (einschließlich) sein und darf nicht oder negativ sein NULL . Der Standardwert ist Null (0).
enable_chunk_set_id
Ein Int - oder Bitausdruck , der als Kennzeichnung dient, um die Ausgabespalte zu aktivieren oder zu deaktivieren. Eine Spalte, die chunk_set_id eine Zahl zurückgibt, um zurückgegebene Blöcke zu gruppieren, die derselben Quelle angehören. Ein Wert, der 1 die Spalte aktiviert. Wenn enable_chunk_set_id ausgelassen wird oder NULLeinen Wert aufweist 0, wird die chunk_set_id Spalte deaktiviert und nicht zurückgegeben.
Rückgabetypen
AI_GENERATE_CHUNKS gibt eine Tabelle mit den folgenden Spalten zurück:
| Spaltenname | Datentyp | BESCHREIBUNG |
|---|---|---|
chunk |
Identisch mit dem Datenquellenausdruck-Datentyp | Zurückgegebener Text, der aus dem Quellausdruck geblockt wurde. |
chunk_order |
bigint | Eine Abfolge sortierter Zahlen, die sich auf die Reihenfolge beziehen, in der die einzelnen Blöcke beginnend mit 1 und aufsteigend verarbeitet 1wurden. |
chunk_offset |
bigint | Position des Abschnitts der Quelldaten/des Dokuments im Verhältnis zum Anfang des Blockierungsprozesses. |
chunk_length |
Int | Zeichenlänge des zurückgegebenen Textabschnitts. |
chunk_set_id |
bigint | Eine optionale Spalte , die eine ID enthält, die alle Blöcke eines Quellausdrucks, Dokuments oder einer Zeile gruppiert. Wenn mehrere Dokumente oder Zeilen in einer einzelnen Transaktion unterteilt sind, erhalten sie jeweils eine andere chunk_set_id. Die Sichtbarkeit wird durch den enable_chunk_set_id Parameter gesteuert. |
Rückgabebeispiel
Hier ist ein Beispiel für die Rückgabeergebnisse AI_GENERATE_CHUNKS mit den folgenden Parametern:
Blocktyp von
FIXED.Blockgröße von 50 Zeichen.
Die Chunk_set_id ist aktiviert.
Blocktext:
All day long we seemed to dawdle through a country which was full of beauty of every kind. Sometimes we saw little towns or castles on the top of steep hills such as we see in old missals; sometimes we ran by rivers and streams which seemed from the wide stony margin on each side of them to be subject to great floods.
| Block | chunk_order | chunk_offset | chunk_length | chunk_set_id |
|---|---|---|---|---|
All day long we seemed to dawdle through a country |
1 | 1 | 50 | 1 |
which was full of beauty of every kind. Sometimes |
2 | 51 | 50 | 1 |
we saw little towns or castles on the top of stee |
3 | 101 | 50 | 1 |
p hills such as we see in old missals; sometimes w |
4 | 151 | 50 | 1 |
e ran by rivers and streams which seemed from the |
5 | 201 | 50 | 1 |
wide stony margin on each side of them to be subje |
6 | 251 | 50 | 1 |
ct to great floods. |
7 | 301 | 19 | 1 |
Bemerkungen
AI_GENERATE_CHUNKS kann in einer Tabelle mit mehreren Zeilen verwendet werden. Abhängig von der Blockgröße und der Textmenge, die geblockt wird, gibt das Resultset an, wann eine neue Spalte oder ein neues Dokument mit der chunk_set_id Spalte gestartet wird. Im folgenden Beispiel werden die chunk_set_id Änderungen geändert, wenn der Text der ersten Zeile abläuft und zur zweiten verschoben wird. Die Werte für chunk_order und chunk_offset zurücksetzen, um einen neuen Ausgangspunkt anzugeben.
CREATE TABLE textchunk (text_id INT IDENTITY(1,1) PRIMARY KEY, text_to_chunk nvarchar(max));
GO
INSERT INTO textchunk (text_to_chunk)
VALUES
('All day long we seemed to dawdle through a country which was full of beauty of every kind. Sometimes we saw little towns or castles on the top of steep hills such as we see in old missals; sometimes we ran by rivers and streams which seemed from the wide stony margin on each side of them to be subject to great floods.'),
('My Friend, Welcome to the Carpathians. I am anxiously expecting you. Sleep well to-night. At three to-morrow the diligence will start for Bukovina; a place on it is kept for you. At the Borgo Pass my carriage will await you and will bring you to me. I trust that your journey from London has been a happy one, and that you will enjoy your stay in my beautiful land. Your friend, DRACULA')
GO
SELECT c.*
FROM textchunk t
CROSS APPLY
AI_GENERATE_CHUNKS(source = text_to_chunk, chunk_type = FIXED, chunk_size = 50, enable_chunk_set_id = 1) c
| Block | chunk_order | chunk_offset | chunk_length | chunk_set_id |
|---|---|---|---|---|
All day long we seemed to dawdle through a country |
1 | 1 | 50 | 1 |
which was full of beauty of every kind. Sometimes |
2 | 51 | 50 | 1 |
we saw little towns or castles on the top of stee |
3 | 101 | 50 | 1 |
p hills such as we see in old missals; sometimes w |
4 | 151 | 50 | 1 |
e ran by rivers and streams which seemed from the |
5 | 201 | 50 | 1 |
wide stony margin on each side of them to be subje |
6 | 251 | 50 | 1 |
ct to great floods. |
7 | 301 | 19 | 1 |
My Friend, Welcome to the Carpathians. I am anxi |
1 | 1 | 50 | 2 |
ously expecting you. Sleep well to-night. At three |
2 | 51 | 50 | 2 |
to-morrow the diligence will start for Bukovina; |
3 | 101 | 50 | 2 |
a place on it is kept for you. At the Borgo Pass m |
4 | 151 | 50 | 2 |
y carriage will await you and will bring you to me |
5 | 201 | 50 | 2 |
. I trust that your journey from London has been a |
6 | 251 | 50 | 2 |
happy one, and that you will enjoy your stay in m |
7 | 301 | 50 | 2 |
y beautiful land. Your friend, DRACULA |
8 | 351 | 38 | 2 |
Beispiele
Ein. Abschnitt einer Textspalte mit FESTEM Typ und Größe von 100 Zeichen
Im folgenden Beispiel wird ein Abschnitt einer Textspalte verwendet AI_GENERATE_CHUNKS . Es verwendet eine chunk_type von FIXED und eine chunk_size von 100 Zeichen.
SELECT c.chunk
FROM docs_table AS t
CROSS APPLY
AI_GENERATE_CHUNKS (SOURCE = text_column, CHUNK_TYPE = FIXED, CHUNK_SIZE = 100) AS c;
B. Abschnitt einer Textspalte mit Überlappung
Im folgenden Beispiel wird AI_GENERATE_CHUNKS eine Textspalte mithilfe von Überlappungen unterteilt. Es verwendet die chunk_type von FIXED, eine chunk_size von 100 Zeichen und eine Überlappung von 10 Prozent.
SELECT c.chunk
FROM docs_table AS t
CROSS APPLY
AI_GENERATE_CHUNKS (SOURCE = text_column, CHUNK_TYPE = FIXED, CHUNK_SIZE = 100, OVERLAP = 10) AS c;
C. Verwenden von AI_GENERATE_EMBEDDINGS mit AI_GENERATE_CHUNKS
In diesem Beispiel werden AI_GENERATE_EMBEDDINGSAI_GENERATE_CHUNKS Einbettungen aus Textblöcken erstellt und anschließend die zurückgegebenen Vektorarrays aus dem KI-Modell eingefügt, in die der Endpunkt abgeleitet wird.
INSERT INTO my_embeddings (chunked_text, vector_embeddings)
SELECT c.chunk,
AI_GENERATE_EMBEDDINGS(c.chunk USE MODEL MyAzureOpenAIModel)
FROM table_with_text AS t
CROSS APPLY
AI_GENERATE_CHUNKS (SOURCE = t.text_to_chunk, CHUNK_TYPE = FIXED, CHUNK_SIZE = 100) AS c;