Kategorien:

Zeichenfolgen- und Binärfunktionen (AI-Funktionen)

AI_COUNT_TOKENS

Bemerkung

AI_COUNT_TOKENS ist die aktualisierte Version von COUNT_TOKENS (SNOWFLAKE.CORTEX). Die neueste Funktionalität finden Sie unter AI_COUNT_TOKENS.

Gibt die geschätzte Anzahl der Token in einer Eingabeaufforderung für das angegebene große Sprachmodell (Large Language Model) oder die aufgabenspezifische Funktion zurück. Für Funktionen, die zusätzliche Eingaben benötigen, die sich auf die Anzahl der Token auswirken, wie z. B. Modellname oder Kategorien/Labels, können diese Eingaben ebenfalls angegeben werden.

Syntax

Die Syntax kann je nach der verwendeten Funktion variieren. Im Allgemeinen übergeben Sie den Funktionsnamen, ggf. den Modellnamen, den Eingabetext und alle zusätzlichen Optionen, die die Anzahl der Token beeinflussen.

AI_COUNT_TOKENS(<function_name>, <input_text> )
AI_COUNT_TOKENS( <function_name>, <model_name> , <input_text> )
AI_COUNT_TOKENS( <function_name>, <input_text>, <options> )
AI_COUNT_TOKENS( <function_name>, <model_name>, <input_text>, <options> )
Copy

AI_COUNT_TOKENS verwendet für einige Funktionen spezifische Syntaxvarianten. Beispiel:

AI_COUNT_TOKENS( 'ai_similarity', <input_text_1>, <input_text_2>, <options> )
AI_COUNT_TOKENS( 'ai_classify', <input_text>, <categories> )
AI_COUNT_TOKENS( 'ai_translate', <input_text>, <source_language>, <target_language> )
Copy

Siehe Beispiele für funktionsspezifische Nutzungsmuster.

Argumente

Benötigt:

Funktionsname

Zeichenfolge, die den Namen der Funktion enthält, auf der die Token-Zählung basieren soll, z. B. 'ai_complete' oder 'ai_sentiment'. Der Name der Funktion muss mit „ai_“ beginnen und darf nur Kleinbuchstaben enthalten.

Eine vollständige Liste der unterstützten Funktionen finden Sie in der Tabelle Regionale Verfügbarkeit.

input_text oder input_text_1, input_text_2

Eingabetext, in dem die Token gezählt werden sollen.

Optional:

model_name

Zeichenfolge, die den Namen des Modells enthält, auf dem der Token-Inhalt basieren soll. Erforderlich, wenn die durch function_name angegebene Funktion erfordert, dass Sie das zu verwendende Modell auswählen, z. B. AI_COMPLETE oder AI_EMBED.

A list of available LLM models is available in the Regionale Verfügbarkeit table. However, not all models are currently supported. Snowflake intends to add support for additional models over time.

Für AI_COMPLETE werden die folgenden Modelle nicht unterstützt:

  • claude-4-opus

  • claude-4-sonnet

  • claude-3-7-sonnet

  • claude-3-5-sonnet

  • openai-gpt-4.1

  • openai-o4-mini

categories

Ein Array von VARIANT-Werten, die eine oder mehrere Kategorien oder Labels angeben, die für Funktionen verwendet werden sollen, die diese Daten erfordern. Kategorien sind in der Token-Zählung für die Eingabe enthalten.

options

Eine VARIANT, die zusätzliche Optionen angibt, die beeinflussen, wie die Funktion die Eingabe verarbeitet. Bei Funktionen, die zwei Texteingaben erfordern, wie z. B. AI_SIMILARITY, werden die Optionen verwendet, um das Modell anzugeben.

Rückgabewerte

Ein Wert des Typs INTEGER, der die Anzahl der Token des Eingabetexts angibt, die unter Verwendung der angegebenen Parameterwerte berechnet werden.

Nutzungshinweise

  • Although function names are usually written in all uppercase, use only lowercase letters in function and model names.

  • COUNT_TOKENS does not work with LLM functions in the SNOWFLAKE.CORTEX namespace or with fine-tuned models. You must specify a function name that begins with „ai_“.

  • COUNT_TOKENS accepts only text, not image, audio, or video inputs.

  • COUNT_TOKENS verursacht nur Computekosten und rechnet nicht nach der Anzahl der Token ab.

  • COUNT_TOKENS ist in allen Regionen verfügbar, auch für Modelle, die in einer bestimmten Region nicht verfügbar sind.

Beispiele

AI_COMPLETE-Beispiel

Die folgenden SQL-Anweisung zählt die Anzahl der Token in einer Eingabeaufforderung für AI_COMPLETE und das llama3.3-70b-Modell:

SELECT AI_COUNT_TOKENS('ai_complete', 'llama3.3-70b', 'Summarize the insights from this
call transcript in 20 words: "I finally splurged on these after months of hesitation about
the price, and I\'m mostly impressed. The Nulu fabric really is as buttery-soft as everyone says,
and they\'re incredibly comfortable for yoga and lounging. The high-rise waistband stays put
and doesn\'t dig in, which is rare for me. However, I\'m already seeing some pilling after
just a few wears, and they definitely require gentle care. They\'re also quite delicate -
I snagged them slightly on my gym bag zipper. Great for low-impact activities, but I wouldn\'t
recommend for high-intensity workouts. Worth it for the comfort factor"');
Copy

Antwort:

158

AI_EMBED-Beispiel

Die folgenden SQL-Anweisung zählt die Anzahl der Token im Text, der mithilfe der AI_EMBED-Funktion und dem nv-embed-qa-4'-Modell eingebettet wird:

SELECT AI_COUNT_TOKENS('ai_embed', 'nv-embed-qa-4', '"I finally splurged on these after months
of hesitation about the price, and I\'m mostly impressed. The Nulu fabric really is as buttery-soft
as everyone says, and they\'re incredibly comfortable for yoga and lounging. The high-rise waistband
stays put and doesn\'t dig in, which is rare for me. However, I\'m already seeing some pilling after
just a few wears, and they definitely require gentle care. They\'re also quite delicate - I snagged
them slightly on my gym bag zipper. Great for low-impact activities, but I wouldn\'t recommend for
high-intensity workouts. Worth it for the comfort factor"');
Copy

Antwort:

142

AI_CLASSIFY-Beispiele

Dieses Beispiel berechnet die Gesamtzahl der Eingabe-Token, die für die Textklassifizierung mit angegebenen Eingaben und Labels erforderlich sind:

SELECT AI_COUNT_TOKENS('ai_classify',
  'One day I will see the world and learn to cook my favorite dishes',
  [
      {'label': 'travel'},
      {'label': 'cooking'},
      {'label': 'reading'},
      {'label': 'driving'}
  ]
);
Copy

Antwort:

187

Das folgende Beispiel fügt dem vorherigen Beispiel Beschreibungen pro Label und eine allgemeine Aufgabenbeschreibung hinzu:

SELECT AI_COUNT_TOKENS('ai_classify',
  'One day I will see the world and learn to cook my favorite dishes',
  [
    {'label': 'travel', 'description': 'content related to traveling'},
    {'label': 'cooking','description': 'content related to food preparation'},
    {'label': 'reading','description': 'content related to reading'},
    {'label': 'driving','description': 'content related to driving a car'}
  ],
  {
    'task_description': 'Determine topics related to the given text'
  };
Copy

Antwort:

254

Das folgende Beispiel baut auf den beiden vorherigen Beispielen auf, indem es Beispiele für Labels hinzufügt:

SELECT AI_COUNT_TOKENS('ai_classify',
  'One day I will see the world and learn to cook my favorite dishes',
  [
    {'label': 'travel', 'description': 'content related to traveling'},
    {'label': 'cooking','description': 'content related to food preparation'},
    {'label': 'reading','description': 'content related to reading'},
    {'label': 'driving','description': 'content related to driving a car'}
  ],
  {
    'task_description': 'Determine topics related to the given text',
    'examples': [
      {
        'input': 'i love traveling with a good book',
        'labels': ['travel', 'reading'],
        'explanation': 'the text mentions traveling and a good book which relates to reading'
      }
    ]
  }
);
Copy

Antwort:

298

AI_SENTIMENT-Beispiele

Die folgenden SQL-Anweisung zählt die Anzahl der Token im Text, der mithilfe der AI_SENTIMENT-Funktion auf die Stimmung hin analysiert wird:

SELECT AI_COUNT_TOKENS('ai_sentiment',
  'This place makes the best truffle pizza in the world! Too bad I cannot afford it');
Copy

Antwort:

139

Das folgende Beispiel fügt dem vorherigen Beispiel Labels hinzu:

SELECT AI_COUNT_TOKENS('ai_sentiment',
  'This place makes the best truffle pizza in the world! Too bad I cannot afford it',
  [
    {'label': 'positive'},
    {'label': 'negative'},
    {'label': 'neutral'}
  ]
);
Copy

Antwort:

148

AI_SIMILARITY examples

The following SQL statement counts the number of tokens in an AI_SIMILARITY call that uses the default model.

SELECT AI_COUNT_TOKENS('ai_similarity',
  'The plot is fast and the characters feel real. This book kept me awake all night
  because the mystery is so deep. I love how the author  handles the ending. It is a
  great read for anyone who likes suspense.',
  'The story is quick and the people feel true. This novel kept me awake all night
  because the puzzle is so big. I love how the writer handles the finale. It is a
  solid choice for anyone who enjoys suspense.');
Copy

Antwort:

101

The following SQL statement counts the number of tokens in an AI_SIMILARITY that uses the e5-base-v2 model:

SELECT AI_COUNT_TOKENS('ai_similarity',
  'The plot is fast and the characters feel real. This book kept me awake all night
  because the mystery is so deep. I love how the author handles the ending. It is a
  great read for anyone who likes suspense.',
  'The story is quick and the people feel true. This novel kept me awake all night
  because the puzzle is so big. I love how the writer handles the finale. It is a
  solid choice for anyone who enjoys suspense.', {'model': 'e5-base-v2'})
Copy

Antwort:

92

AI_TRANSLATE example

The following SQL statement counts the number of tokens used by AI_TRANSLATE when translating text from English to German.

SELECT AI_COUNT_TOKENS('ai_translate',
  'The plot is fast and the characters feel real. This book kept me awake all night
  because the mystery is so deep. I love how the author handles the ending. It is a
  great read for anyone who likes suspense.', 'en', 'de');
Copy

Antwort:

51