


Ich habe mit Streamlit in Snowflake (SiS) eine App zur Überprüfung der Tokenanzahl erstellt.
Sep 14, 2024 pm 12:15 PMEinführung
Hallo, ich bin Vertriebsingenieur bei Snowflake. Einige meiner Erfahrungen und Experimente möchte ich in verschiedenen Beiträgen mit Ihnen teilen. In diesem Artikel zeige ich Ihnen, wie Sie mit Streamlit in Snowflake eine App erstellen, um die Anzahl der Token zu überprüfen und die Kosten für Cortex LLM abzuschätzen.
Hinweis: Dieser Beitrag stellt meine persönlichen Ansichten dar und nicht die von Snowflake.
Was ist Streamlit in Snowflake (SiS)?
Streamlit ist eine Python-Bibliothek, die es Ihnen ermöglicht, Web-UIs mit einfachem Python-Code zu erstellen, sodass kein HTML/CSS/JavaScript erforderlich ist. Beispiele finden Sie in der App-Galerie.
Streamlit in Snowflake ermöglicht Ihnen die Entwicklung und Ausführung von Streamlit-Webanwendungen direkt auf Snowflake. Es ist einfach mit nur einem Snowflake-Konto zu verwenden und eignet sich hervorragend für die Integration von Snowflake-Tabellendaten in Web-Apps.
Über Streamlit in Snowflake (Offizielle Snowflake-Dokumentation)
Was ist Schneeflocken-Cortex?
Snowflake Cortex ist eine Suite generativer KI-Funktionen in Snowflake. Mit Cortex LLM können Sie mit einfachen Funktionen in SQL oder Python große Sprachmodelle aufrufen, die auf Snowflake laufen.
Large Language Model (LLM)-Funktionen (Snowflake Cortex) (Offizielle Snowflake-Dokumentation)
Funktionsübersicht
Bild
Hinweis: Der Text im Bild stammt aus „The Spider's Thread“ von Ryunosuke Akutagawa.
Merkmale
- Benutzer können ein Cortex-LLM-Modell auswählen
- Zeichen- und Tokenanzahl für vom Benutzer eingegebenen Text anzeigen
- Zeigen Sie das Verhältnis von Token zu Zeichen an
- Berechnen Sie die geschätzten Kosten basierend auf den Snowflake-Guthabenpreisen
Hinweis: Cortex LLM-Preistabelle (PDF)
Voraussetzungen
- Snowflake-Konto mit Cortex LLM-Zugriff
- snowflake-ml-python 1.1.2 oder höher
Hinweis: Verfügbarkeit der Cortex LLM-Region (offizielle Snowflake-Dokumentation)
Quellcode
import streamlit as st from snowflake.snowpark.context import get_active_session import snowflake.snowpark.functions as F # Get current session session = get_active_session() # Application title st.title("Cortex AI Token Count Checker") # AI settings st.sidebar.title("AI Settings") lang_model = st.sidebar.radio("Select the language model you want to use", ("snowflake-arctic", "reka-core", "reka-flash", "mistral-large2", "mistral-large", "mixtral-8x7b", "mistral-7b", "llama3.1-405b", "llama3.1-70b", "llama3.1-8b", "llama3-70b", "llama3-8b", "llama2-70b-chat", "jamba-instruct", "gemma-7b") ) # Function to count tokens (using Cortex's token counting function) def count_tokens(model, text): result = session.sql(f"SELECT SNOWFLAKE.CORTEX.COUNT_TOKENS('{model}', '{text}') as token_count").collect() return result[0]['TOKEN_COUNT'] # Token count check and cost calculation st.header("Token Count Check and Cost Calculation") input_text = st.text_area("Select a language model from the left pane and enter the text you want to check for token count:", height=200) # Let user input the price per credit credit_price = st.number_input("Enter the price per Snowflake credit (in dollars):", min_value=0.0, value=2.0, step=0.01) # Credits per 1M tokens for each model (as of 2024/8/30, mistral-large2 is not supported) model_credits = { "snowflake-arctic": 0.84, "reka-core": 5.5, "reka-flash": 0.45, "mistral-large2": 1.95, "mistral-large": 5.1, "mixtral-8x7b": 0.22, "mistral-7b": 0.12, "llama3.1-405b": 3, "llama3.1-70b": 1.21, "llama3.1-8b": 0.19, "llama3-70b": 1.21, "llama3-8b": 0.19, "llama2-70b-chat": 0.45, "jamba-instruct": 0.83, "gemma-7b": 0.12 } if st.button("Calculate Token Count"): if input_text: # Calculate character count char_count = len(input_text) st.write(f"Character count of input text: {char_count}") if lang_model in model_credits: # Calculate token count token_count = count_tokens(lang_model, input_text) st.write(f"Token count of input text: {token_count}") # Ratio of tokens to characters ratio = token_count / char_count if char_count > 0 else 0 st.write(f"Token count / Character count ratio: {ratio:.2f}") # Cost calculation credits_used = (token_count / 1000000) * model_credits[lang_model] cost = credits_used * credit_price st.write(f"Credits used: {credits_used:.6f}") st.write(f"Estimated cost: ${cost:.6f}") else: st.warning("The selected model is not supported by Snowflake's token counting feature.") else: st.warning("Please enter some text.")
Abschluss
Diese App erleichtert die Schätzung der Kosten für LLM-Arbeitslasten, insbesondere bei Sprachen wie Japanisch, bei denen häufig eine Lücke zwischen der Zeichenanzahl und der Tokenanzahl besteht. Ich hoffe, Sie finden es nützlich!
Ankündigungen
Was gibt es Neues bei Snowflake? Updates auf X
Ich teile Snowflakes Neuigkeiten-Updates auf X. Bitte folgen Sie uns gerne, wenn Sie interessiert sind!
Englische Version
Snowflake What's New Bot (englische Version)
https://x.com/snow_new_en
Japanische Version
Snowflake What's New Bot (Japanische Version)
https://x.com/snow_new_jp
Änderungsverlauf
(20240914) Erster Beitrag
Originaler japanischer Artikel
https://zenn.dev/tsubasa_tech/articles/4dd80c91508ec4
Das obige ist der detaillierte Inhalt vonIch habe mit Streamlit in Snowflake (SiS) eine App zur Überprüfung der Tokenanzahl erstellt.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie benutze ich eine schöne Suppe, um HTML zu analysieren?

So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu finden

Wie man mit PDF -Dokumenten mit Python arbeitet

Wie kann man mit Redis in Django -Anwendungen zwischenstrichen

Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch?

Serialisierung und Deserialisierung von Python -Objekten: Teil 1

So implementieren Sie Ihre eigene Datenstruktur in Python
