GPT-OSS ( ) ist die erste offene Modellreihe von OpenAI, die du direkt auf deinem eigenen Computer ausfĂŒhren kannst. GPT-OSS ist fĂŒr leistungsstarkes Denken, agentenbasierte Aufgaben und flexible AnwendungsfĂ€lle fĂŒr Entwickler gemacht und sticht durch seinen konfigurierbaren Denkaufwand und seine transparenten Denkprozessfunktionen hervor.
In diesem Tutorial zeige ich dir, wie du die GPT-OSS-Modelle von OpenAI lokal mit Ollamaeinrichtest und eine interaktive Demo erstellst, die die einzigartigen SchlussfolgerungsfĂ€higkeiten des Modells vorfĂŒhrt. Wir schauen uns die konfigurierbaren Funktionen der Denkverkettung des Modells an und erstellen eine Streamlit-App, die den Denkprozess des Modells zeigt.
Wir halten unsere Leser ĂŒber die neuesten Entwicklungen im Bereich KI auf dem Laufenden, indem wir ihnen jeden Freitag unseren kostenlosen Newsletter âThe Medianâ schicken, der die wichtigsten Meldungen der Woche zusammenfasst. Abonniere unseren Newsletter und bleib in nur wenigen Minuten pro Woche auf dem Laufenden:
Was ist GPT-OSS von OpenAI?
Die GPT-OSS-Serie von OpenAI ist die erste Veröffentlichung mit freier Gewichtung seit GPT-2 und ermöglicht den Zugriff auf leistungsstarke Schlussfolgerungsmodelle unter der Apache 2.0-Lizenz. Diese supermodernen Sprachmodelle sind echt leistungsstark und gĂŒnstig und machen Ă€hnliche offene Modelle bei Denkaufgaben richtig fertig.
Es gibt zwei Varianten: gpt-oss-120b und gpt-oss-20b.
gpt-oss-120b ist das Flaggschiff unter den Open-Weight-Modellen von OpenAI und kann mit seiner Leistung mit proprietĂ€ren Systemen wie o4-mini bei anspruchsvollen Benchmarks fĂŒr logisches Denken mithalten kann. Trotz seiner GröĂe von 117 Milliarden Parametern ist es so optimiert, dass es auf einer einzigen 80-GB-GPU lĂ€uft. Das macht es zu einer coolen Option fĂŒr Forschungslabore und Unternehmensteams, die leistungsstarke Sprachmodelle lokal hosten wollen.
Das Modell ist so gemacht, dass es komplexe ArbeitsablĂ€ufe wie den Einsatz von Tools, mehrstufiges Denken und eine genaue Steuerung des âDenkaufwandsâ fĂŒr jede Aufgabe unterstĂŒtzt. Dank seiner Offenheit und der Apache 2.0-Lizenz ist es eine flexible Option fĂŒr Teams, die das Modell grĂŒndlich prĂŒfen, anpassen oder optimieren wollen.
gpt-oss-20b
gpt-oss-20b packt ĂŒberraschend viel Rechenleistung in ein Format, das auf normale Laptops passt. Mit nur 21 Milliarden Parametern ist es immer noch besser als OpenAI's o3-mini in einigen Benchmarks und lĂ€uft super auf GerĂ€ten mit 16 GB Arbeitsspeicher. Es ist quantisiert und fĂŒr den schnellen Einsatz vor Ort vorbereitet und mit Tools wie Ollama, vLLMund sogar mit Apples Metal-Plattform.
Dieses Modell ist super fĂŒr Entwickler, die reaktionsschnelle, private KI-Apps erstellen wollen, ohne auf eine Cloud-Infrastruktur angewiesen zu sein. Genau wie sein gröĂerer Bruder unterstĂŒtzt es eine anpassbare Argumentationstiefe und klare Zwischenschritte â super fĂŒr Experimente, einfache Assistenten und Edge GerĂ€teanwendungen.
Warum GPT-OSS lokal ausfĂŒhren?
Die lokale AusfĂŒhrung von GPT-OSS hat gegenĂŒber Cloud-basierten Alternativen einige coole Vorteile:
Datenschutz und Kontrolle: Die ganze Schlussfolgerung lĂ€uft auf deiner Hardware ab, also ohne externe AbhĂ€ngigkeiten, AusfĂ€lle oder API-Ănderungen. Du bekommst vollen Zugriff auf die internen Denkprozesse des Modells, nicht nur auf die endgĂŒltigen Antworten.
Leistung: Lokale Modelle machen Schluss mit Netzwerkverzögerungen, sodass du sofort Antworten bekommst. Du kannst sie so oft nutzen, wie du willst (ohne Begrenzung der Rate oder der Tokens), und sie sind immer verfĂŒgbar.
Einsparungen bei den Kosten: Das Modell muss nur einmal runtergeladen und eingerichtet werden, es gibt keine AbogebĂŒhren und du kannst deine vorhandenen Rechenressourcen ohne laufende API-Kosten nutzen.
Transparente Argumentation: Der Benutzer kann zwischen den Modi âgeringe Anstrengungâ, âmittlere Anstrengungâ und âhohe Anstrengungâ wechseln, um Geschwindigkeit und Tiefe auszugleichen und die gesamte Gedankenkette zu ĂŒberprĂŒfen.
Anpassbarkeit und Erweiterbarkeit: Wir können die Open-Weight-Modelle genau auf unsere Aufgaben abstimmen, die Sampling-Parameter anpassen und Agent-Tools ganz einfach integrieren.
GPT-OSS lokal mit Ollama einrichten
Ollama macht das lokale AusfĂŒhren groĂer Sprachmodelle echt einfach, indem es Downloads, Quantisierung und AusfĂŒhrung ĂŒbernimmt. Ich zeig dir Schritt fĂŒr Schritt, wie du GPT-OSS auf deinem System einrichtest. Am Ende sieht unsere App so aus:
Damit bekommst du die aktuellste Version von Ollama, die auf deinem System installiert ist.
Schritt 2: Lade die GPT-OSS-Modelle runter
OpenAI bietet zwei GPT-OSS-Varianten an, die fĂŒr verschiedene AnwendungsfĂ€lle optimiert sind. FĂŒr diese Demo ziehen wir aber nur die Modellvariante gpt-oss-20b heran:
# For production and high reasoning tasks
ollama pull gpt-oss:120b
# For lower latency and local deployment
ollama pull gpt-oss:20bBereitgestellt von
Das Modell 20B ist super fĂŒr die lokale Entwicklung und lĂ€uft auf Systemen mit 16 GB+ Arbeitsspeicher, wĂ€hrend das Modell 120B mehr Funktionen bietet, aber 80 GB+ Arbeitsspeicher braucht.
Du solltest eine Eingabeaufforderung sehen, ĂŒber die du direkt mit dem Modell interagieren kannst. Frag doch mal: âBeweise, dass â2 irrational ist.â
GPT-OSS lokal nutzen: Interaktiver ChatBot
Jetzt bauen wir schnell eine einfache App, die die DenkfÀhigkeiten von GPT-OSS zeigt. Unsere App wird Folgendes bieten:
Interaktive Argumentationskontrollen
Visualisierung von GedankengÀngen
LeistungsĂŒberwachung
GesprÀchshistorie
Schritt 1: AbhÀngigkeiten installieren
Mach die folgenden Befehle, um die nötigen AbhÀngigkeiten zu installieren:
Der obige Code installiert Streamlit fĂŒr die Erstellung der Webschnittstelle und den Ollama Python-Client fĂŒr die lokale Interaktion mit dem GPT-OSS-Modell.
Schritt 2: Bibliotheken importieren und die Seite einrichten
Bevor wir uns mit der Chat-Logik beschĂ€ftigen, mĂŒssen wir alle Tools holen und unsere BenutzeroberflĂ€che einrichten.
Wir importieren ein paar wichtige Pakete wie Streamlit fĂŒr unsere WeboberflĂ€che, Ollama zum Aufrufen des lokalen GPT-OSS-Modells sowie Hilfsmodule wie json, time, typing und re. Dann nehmen wir st.set_page_config(), um der Seite einen Titel, ein breites Layout und ein Symbol zu geben, und fĂŒgen leichtes CSS ein, damit die Argumentationsschritte und Antworten in separaten Feldern angezeigt werden.
Schritt 3: Integration des Kernmodells
Nachdem wir unser UI-GerĂŒst aufgestellt haben, erstellen wir die Kernfunktion â call_model() â fĂŒr die Modellintegration:
Nimmt eine Liste von Chat-Nachrichten (System + Benutzer) entgegen, sodass wir den Kontext ĂŒber mehrere Runden hinweg einfach beibehalten können.
AnschlieĂend werden â start_time â und â end_time â rund um den Aufruf â ollama.chat() â aufgezeichnet, um die Antwortzeiten an den Benutzer zurĂŒckzumelden.
AuĂerdem normalisiert es die Antworten vom Ollama-Client, indem es den rohen Text extrahiert.
Zum Schluss packt die Funktion â call_model() â den ganzen Aufruf in einen â try/except â-Block, um Fehler abzufangen.
Schritt 4: Gedankenkette-Parser
Damit unsere Demo wirklich klar ist, mĂŒssen wir den âinneren Monologâ des Modells von seinem endgĂŒltigen Urteil trennen. Die Funktion â parse_reasoning_response() â macht genau das:
defparse_reasoning_response(content:str)-> Dict[str,str]:
patterns =[r"<thinking>(.*?)</thinking>",r"Let me think.*?:(.*?)(?=\n\n|\nFinal|Answer:)",r"Reasoning:(.*?)(?=\n\n|\nAnswer:|\nConclusion:)",]
reasoning =""
answer = content
for pat in patterns:
m = re.search(pat, content, re.DOTALL | re.IGNORECASE)if m:
reasoning = m.group(1).strip()
answer = content.replace(m.group(0),"").strip()breakifnot reasoning andlen(content.split('\n'))>3:
lines = content.split('\n')for i, l inenumerate(lines):ifany(k in l.lower()for k in['therefore','in conclusion','final answer','answer:']):
reasoning ='\n'.join(lines[:i]).strip()
answer ='\n'.join(lines[i:]).strip()breakreturn{'reasoning': reasoning or"No explicit reasoning detected.",'answer': answer or content
}Bereitgestellt von
Wir trennen das âDenkvermögenâ des Modells von seinem endgĂŒltigen Urteil, sodass die Nutzer jeden einzelnen Schritt der Argumentation nach Belieben ĂŒberprĂŒfen können. So wird die Antwort analysiert:
Auf der Suche nach eindeutigen Markierungen: Zuerst sucht das Modell mit regulĂ€ren AusdrĂŒcken nach Tags oder Phrasen wie â ⊠â (BegrĂŒndung) oder âReasoning:â (BegrĂŒndung) und âLet me think throughâ (Lass mich mal darĂŒber nachdenken).
extrahieren und bereinigen: Wenn eine Ăbereinstimmung gefunden wird, wird dieses Segment zur BegrĂŒndung und der Rest wird als Antwort behandelt.
Heuristischer Fallback-: Wenn keine Tags da sind, aber der Text ĂŒber mehrere Zeilen geht, sucht das Tool nach Schlussworten (âdaherâ, âabschlieĂendâ, âletzte Antwortâ oder âAntwort:â) und teilt den Text da auf.
Ausgabe: Egal in welchem Format, die Funktion â parse_reasoning_response() â gibt immer eine Antwort zurĂŒck.
Schritt 5: Komplette Streamlit-App
Nachdem wir jetzt alle Bausteine fertig haben, setzen wir sie zu einer interaktiven Chat-App zusammen.Â
# Initialize historyif'history'notin st.session_state:
st.session_state.history =[]# Sidebar for settingswith st.sidebar:
st.header("Configuration")
model_choice = st.selectbox("Model",["gpt-oss:20b","gpt-oss:120b"],help="Choose between 20B (faster) or 120B (more capable)")
effort = st.selectbox("Reasoning Effort",["low","medium","high"],
index=1,help="Controls depth of reasoning shown")
temperature = st.slider("Temperature",0.0,2.0,1.0,0.1,help="Controls response randomness")
show_reasoning = st.checkbox("Show Chain-of-Thought",True,help="Display model's thinking process")
show_metrics = st.checkbox("Show Performance Metrics",True,help="Display response time and model info")
st.markdown("---")if st.button("Clear Conversation"):
st.session_state.history =[]
st.rerun()# Main Chat Interface
st.title("đŹ GPT-OSS Interactive Chat")
examples =["","If a train travels 120km in 1.5 hours, then 80km in 45 minutes, what's its average speed?","Prove that â2 is irrational.","Write a function to find the longest palindromic substring.","Explain quantum entanglement in simple terms.","How would you design a recommendation system?",]
selected_from_dropdown = st.selectbox("Choose from examples:", examples)# Get the question text
question_value =""ifhasattr(st.session_state,'selected_example'):
question_value = st.session_state.selected_example
del st.session_state.selected_example
elif selected_from_dropdown:
question_value = selected_from_dropdown
question = st.text_area("Or Enter your question:",
value=question_value,
height=100,
placeholder="Ask anything! Try different reasoning effort levels to see how the model's thinking changes...")# Submit button
col1, col2 = st.columns([1,4])with col1:
submit_button = st.button("Ask GPT-OSS",type="primary")if submit_button and question.strip():# System prompts
system_prompts ={'low':'You are a helpful assistant. Provide concise, direct answers.','medium':f'You are a helpful assistant. Show brief reasoning before your answer. Reasoning effort: {effort}','high':f'You are a helpful assistant. Show complete chain-of-thought reasoning step by step. Think through the problem carefully before providing your final answer. Reasoning effort: {effort}'}# Message history
msgs =[{'role':'system','content': system_prompts[effort]}]
msgs.extend(st.session_state.history[-6:])
msgs.append({'role':'user','content': question})with st.spinner(f"GPT-OSS thinking ({effort} effort)..."):
res = call_model(msgs, model_choice, temperature)if res['success']:
parsed = parse_reasoning_response(res['content'])
st.session_state.history.append({'role':'user','content': question})
st.session_state.history.append({'role':'assistant','content': res['content']})
col1, col2 = st.columns([3,1]if show_metrics else[1])with col1:if show_reasoning and parsed['reasoning']!='No explicit reasoning detected.':
st.markdown("### Chain-of-Thought Reasoning")
st.markdown(f"<div class='reasoning-box'>{parsed['reasoning']}</div>", unsafe_allow_html=True)
st.markdown("### Answer")
st.markdown(f"<div class='answer-box'>{parsed['answer']}</div>", unsafe_allow_html=True)if show_metrics:with col2:
st.markdown(f"""
<div class="metric-card">
<h4> Metrics</h4>
<p><strong>Time:</strong><br>{res['response_time']:.2f}s</p>
<p><strong>Model:</strong><br>{model_choice}</p>
<p><strong>Effort:</strong><br>{effort.title()}</p>
</div>
""", unsafe_allow_html=True)else:
st.error(f"{res['content']}")if st.session_state.history:
st.markdown("---")
st.subheader("Conversation History")
recent_history = st.session_state.history[-8:]# Last 8 messages (4 exchanges) for i, msg inenumerate(recent_history):if msg['role']=='user':
st.markdown(f"""
<div class="chat-message user-message">
<strong>You:</strong> {msg['content']}
</div>
""", unsafe_allow_html=True)else:
parsed_hist = parse_reasoning_response(msg['content'])with st.expander(f"GPT-OSS Response", expanded=False):if parsed_hist['reasoning']!='No explicit reasoning detected.':
st.markdown("**Reasoning Process:**")
st.code(parsed_hist['reasoning'], language='text')
st.markdown("**Final Answer:**")
st.markdown(parsed_hist['answer'])# Footer
st.markdown("---")
st.markdown("""
<div style='text-align: center;'>
<p><strong>Powered by GPT-OSS-20B via Ollama</strong></p>
</div>
""", unsafe_allow_html=True)Bereitgestellt von
In diesem letzten Schritt bringen wir alle Teile unserer App zusammen, einschlieĂlich Sitzungsstatus, Seitenleistensteuerung, Beispielaufforderungen, Nachrichtenzusammenstellung, Modellaufruf, Parsing und Anzeige, in einer einzigen Schleife:
Initialisierung des Sitzungsstatus: Wir nutzen â st.session_state.history â, um jeden Austausch zwischen Benutzern und Assistenten bei Wiederholungen zu speichern.
Seitenleisten-Einstellungen: Mit dieser Einstellung können Benutzer auswÀhlen, ob sie
Modell: gpt-oss:20b oder gpt-oss:120b
Argumentationsaufwand: gering/mittel/hoch
Temperatur: von 0 bis 2,0, regelt die ZufÀlligkeit des Modells
Gedankenkette-Schalter: Die interne Argumentation des Modells anzeigen oder ausblenden
Klare GesprÀchs: Das löscht den Verlauf und startet die App neu.
Beispielfragen und Eingaben: Ein Dropdown-MenĂŒ mit ersten Fragen hilft neuen Benutzern beim Einstieg, und was auch immer der Benutzer auswĂ€hlt (oder eingibt), wird als Anfrage des Benutzers im Textbereich angezeigt.
Die Anfrage erstellen: Wenn âAsk GPT-OSSâ geklickt wird, machen wir Folgendes:
Erstell eine Systemaufforderung, die auf dem gewÀhlten Schwierigkeitsgrad basiert.
FĂŒge die letzten sechs Nachrichten aus dem Verlauf an, damit der Kontext klar bleibt.
FĂŒge die neue Benutzerfrage hinzu.
Modellaufruf: Wir benutzen die Funktion â call_model() â, die:
Schickt die zusammengestellten Nachrichten an Ollama.
Misst die Reaktionszeit
Gibt eine normalisierte Inhaltszeichenfolge zurĂŒck.
Analyse und Anzeige: Mit der Funktion â parse_reasoning_response() â teilen wir die Ausgabe des Modells in eine Gedankenkette namens âreasoningâ und eine bereinigte Antwort namens âanswerâ auf.
Verlauf verwalten: Jedes Frage-Antwort-Paar wird an die Liste â st.session_state.history â angehĂ€ngt, damit sie beim nĂ€chsten Durchlauf im Kontext berĂŒcksichtigt werden.
Um es selbst auszuprobieren, speicher den Code als â gpt_oss_demo.py â und starte:
Das GPT-OSS von OpenAI ist eines der besten Open-Weight-Modelle, die du heute nutzen kannst. Durch die Kombination der einfachen Bereitstellung von Ollama mit den interaktiven Funktionen von Streamlit haben wir eine Plattform geschaffen, die Folgendes bietet:
Konfigurierbare Argumentationstiefe
Volle lokale Kontrolle
Transparentes Denken
GPT-OSS zusammen mit Tools wie Ollama macht fortschrittliche KI-Funktionen fĂŒr Entwickler, Forscher und Organisationen zugĂ€nglich, die Wert auf Datenschutz, Kontrolle und VerstĂ€ndnis legen.
Gewinne Vertrauen in die OLS-Regression, indem du ihre theoretischen Grundlagen beherrschst. Erforsche, wie du einfache Implementierungen in Excel, R und Python durchfĂŒhrst.
Erforsche Pythons match-case: eine Anleitung zu seiner Syntax, Anwendungen in Data Science und ML sowie eine vergleichende Analyse mit dem traditionellen switch-case.
Lerne, wie du Python-Listen mit Techniken wie Slicing, List Comprehensions und itertools aufteilen kannst. Finde heraus, wann du welche Methode fĂŒr die beste Datenverarbeitung nutzen solltest.
GPT-OSS ( ) ist die erste offene Modellreihe von OpenAI, die du direkt auf deinem eigenen Computer ausfĂŒhren kannst. GPT-OSS ist fĂŒr leistungsstarkes Denken, agentenbasierte Aufgaben und flexible AnwendungsfĂ€lle fĂŒr Entwickler gemacht und sticht durch seinen konfigurierbaren Denkaufwand und seine transparenten Denkprozessfunktionen hervor.
In diesem Tutorial zeige ich dir, wie du die GPT-OSS-Modelle von OpenAI lokal mit Ollama einrichtest und eine interaktive Demo erstellst, die die einzigartigen SchlussfolgerungsfĂ€higkeiten des Modells vorfĂŒhrt. Wir schauen uns die konfigurierbaren Funktionen der Denkverkettung des Modells an und erstellen eine Streamlit-App, die den Denkprozess des Modells zeigt.
Wir halten unsere Leser ĂŒber die neuesten Entwicklungen im Bereich KI auf dem Laufenden, indem wir ihnen jeden Freitag unseren kostenlosen Newsletter âThe Medianâ schicken, der die wichtigsten Meldungen der Woche zusammenfasst. Abonniere unseren Newsletter und bleib in nur wenigen Minuten pro Woche auf dem Laufenden:
Was ist GPT-OSS von OpenAI?
Die GPT-OSS-Serie von OpenAI ist die erste Veröffentlichung mit freier Gewichtung seit GPT-2 und ermöglicht den Zugriff auf leistungsstarke Schlussfolgerungsmodelle unter der Apache 2.0-Lizenz. Diese supermodernen Sprachmodelle sind echt leistungsstark und gĂŒnstig und machen Ă€hnliche offene Modelle bei Denkaufgaben richtig fertig.
Es gibt zwei Varianten: gpt-oss-120b und gpt-oss-20b.
Quelle: OpenAI
gpt-oss-120b
gpt-oss-120b ist das Flaggschiff unter den Open-Weight-Modellen von OpenAI und kann mit seiner Leistung mit proprietĂ€ren Systemen wie o4-mini bei anspruchsvollen Benchmarks fĂŒr logisches Denken mithalten kann. Trotz seiner GröĂe von 117 Milliarden Parametern ist es so optimiert, dass es auf einer einzigen 80-GB-GPU lĂ€uft. Das macht es zu einer coolen Option fĂŒr Forschungslabore und Unternehmensteams, die leistungsstarke Sprachmodelle lokal hosten wollen.
Das Modell ist so gemacht, dass es komplexe ArbeitsablĂ€ufe wie den Einsatz von Tools, mehrstufiges Denken und eine genaue Steuerung des âDenkaufwandsâ fĂŒr jede Aufgabe unterstĂŒtzt. Dank seiner Offenheit und der Apache 2.0-Lizenz ist es eine flexible Option fĂŒr Teams, die das Modell grĂŒndlich prĂŒfen, anpassen oder optimieren wollen.
gpt-oss-20b
gpt-oss-20b packt ĂŒberraschend viel Rechenleistung in ein Format, das auf normale Laptops passt. Mit nur 21 Milliarden Parametern ist es immer noch besser als OpenAI's o3-mini in einigen Benchmarks und lĂ€uft super auf GerĂ€ten mit 16 GB Arbeitsspeicher. Es ist quantisiert und fĂŒr den schnellen Einsatz vor Ort vorbereitet und mit Tools wie Ollama, vLLMund sogar mit Apples Metal-Plattform.
Dieses Modell ist super fĂŒr Entwickler, die reaktionsschnelle, private KI-Apps erstellen wollen, ohne auf eine Cloud-Infrastruktur angewiesen zu sein. Genau wie sein gröĂerer Bruder unterstĂŒtzt es eine anpassbare Argumentationstiefe und klare Zwischenschritte â super fĂŒr Experimente, einfache Assistenten und Edge GerĂ€teanwendungen.
Warum GPT-OSS lokal ausfĂŒhren?
Die lokale AusfĂŒhrung von GPT-OSS hat gegenĂŒber Cloud-basierten Alternativen einige coole Vorteile:
GPT-OSS lokal mit Ollama einrichten
Ollama macht das lokale AusfĂŒhren groĂer Sprachmodelle echt einfach, indem es Downloads, Quantisierung und AusfĂŒhrung ĂŒbernimmt. Ich zeig dir Schritt fĂŒr Schritt, wie du GPT-OSS auf deinem System einrichtest. Am Ende sieht unsere App so aus:
Schritt 1: Installier Ollama
Lade zuerst Ollama von der offiziellen Websiteherunter und installiere es.
Nach der Installation kannst du die Installation ĂŒberprĂŒfen, indem du ein Terminal öffnest und Folgendes eingibst:
Damit bekommst du die aktuellste Version von Ollama, die auf deinem System installiert ist.
Schritt 2: Lade die GPT-OSS-Modelle runter
OpenAI bietet zwei GPT-OSS-Varianten an, die fĂŒr verschiedene AnwendungsfĂ€lle optimiert sind. FĂŒr diese Demo ziehen wir aber nur die Modellvariante gpt-oss-20b heran:
Das Modell 20B ist super fĂŒr die lokale Entwicklung und lĂ€uft auf Systemen mit 16 GB+ Arbeitsspeicher, wĂ€hrend das Modell 120B mehr Funktionen bietet, aber 80 GB+ Arbeitsspeicher braucht.
Schritt 3: Probier mal die Installation aus
Schauen wir mal, ob alles richtig funktioniert:
Du solltest eine Eingabeaufforderung sehen, ĂŒber die du direkt mit dem Modell interagieren kannst. Frag doch mal: âBeweise, dass â2 irrational ist.â
GPT-OSS lokal nutzen: Interaktiver ChatBot
Jetzt bauen wir schnell eine einfache App, die die DenkfÀhigkeiten von GPT-OSS zeigt. Unsere App wird Folgendes bieten:
Schritt 1: AbhÀngigkeiten installieren
Mach die folgenden Befehle, um die nötigen AbhÀngigkeiten zu installieren:
Der obige Code installiert Streamlit fĂŒr die Erstellung der Webschnittstelle und den Ollama Python-Client fĂŒr die lokale Interaktion mit dem GPT-OSS-Modell.
Schritt 2: Bibliotheken importieren und die Seite einrichten
Bevor wir uns mit der Chat-Logik beschĂ€ftigen, mĂŒssen wir alle Tools holen und unsere BenutzeroberflĂ€che einrichten.
Wir importieren ein paar wichtige Pakete wie Streamlit fĂŒr unsere WeboberflĂ€che, Ollama zum Aufrufen des lokalen GPT-OSS-Modells sowie Hilfsmodule wie
json,time,typingundre. Dann nehmen wirst.set_page_config(), um der Seite einen Titel, ein breites Layout und ein Symbol zu geben, und fĂŒgen leichtes CSS ein, damit die Argumentationsschritte und Antworten in separaten Feldern angezeigt werden.Schritt 3: Integration des Kernmodells
Nachdem wir unser UI-GerĂŒst aufgestellt haben, erstellen wir die Kernfunktion â
call_model()â fĂŒr die Modellintegration:Der obige Code:
start_timeâ und âend_timeâ rund um den Aufruf âollama.chat()â aufgezeichnet, um die Antwortzeiten an den Benutzer zurĂŒckzumelden.call_model()â den ganzen Aufruf in einen âtry/exceptâ-Block, um Fehler abzufangen.Schritt 4: Gedankenkette-Parser
Damit unsere Demo wirklich klar ist, mĂŒssen wir den âinneren Monologâ des Modells von seinem endgĂŒltigen Urteil trennen. Die Funktion â
parse_reasoning_response()â macht genau das:Wir trennen das âDenkvermögenâ des Modells von seinem endgĂŒltigen Urteil, sodass die Nutzer jeden einzelnen Schritt der Argumentation nach Belieben ĂŒberprĂŒfen können. So wird die Antwort analysiert:
âŠâ (BegrĂŒndung) oder âReasoning:â (BegrĂŒndung) und âLet me think throughâ (Lass mich mal darĂŒber nachdenken).parse_reasoning_response()â gibt immer eine Antwort zurĂŒck.Schritt 5: Komplette Streamlit-App
Nachdem wir jetzt alle Bausteine fertig haben, setzen wir sie zu einer interaktiven Chat-App zusammen.Â
In diesem letzten Schritt bringen wir alle Teile unserer App zusammen, einschlieĂlich Sitzungsstatus, Seitenleistensteuerung, Beispielaufforderungen, Nachrichtenzusammenstellung, Modellaufruf, Parsing und Anzeige, in einer einzigen Schleife:
st.session_state.historyâ, um jeden Austausch zwischen Benutzern und Assistenten bei Wiederholungen zu speichern.call_model()â, die:parse_reasoning_response()â teilen wir die Ausgabe des Modells in eine Gedankenkette namens âreasoningâ und eine bereinigte Antwort namens âanswerâ auf.st.session_state.historyâ angehĂ€ngt, damit sie beim nĂ€chsten Durchlauf im Kontext berĂŒcksichtigt werden.Um es selbst auszuprobieren, speicher den Code als â
gpt_oss_demo.pyâ und starte: