Erfahren Sie, wie Sie das neue Modell OpenAI o1-preview in ein Python-Skript integrieren, um Ihre Projekte im Bereich künstliche Intelligenz zu bereichern. Dieses Skript ermöglicht die Interaktion mit der OpenAI-API unter Verwendung des Modells o1-preview, mit der Möglichkeit, Webinhalte in die Prompts einzubinden mittels einer Web-Scraping-Funktion. Zudem werden mathematische Ausdrücke in LaTeX in den Antworten des Modells korrekt behandelt und in im Terminal lesbaren Unicode-Text konvertiert.
Einleitung
Am 12. September 2024 hat OpenAI seine neue Serie von KI-Modellen mit der Bezeichnung OpenAI o1 veröffentlicht. Diese Modelle sind darauf ausgelegt, vor der Ausgabe einer Antwort tiefgehender zu überlegen, was ihnen ermöglicht, komplexe Probleme in Naturwissenschaften, Programmierung und Mathematik zu lösen. Das Modell o1-preview zeichnet sich in diesen Bereichen besonders aus und übertrifft frühere Modelle wie gpt-4o.
Wesentliche Punkte des Skripts:
- Integration des Modells o1-preview: Das Skript verwendet standardmäßig das Modell o1-preview und bietet somit erweiterte Reasoning-Fähigkeiten.
- Integriertes Web-Scraping: Es kann den Inhalt von Webseiten extrahieren, um den Kontext des Prompts zu erweitern.
- Verarbeitung von LaTeX-Ausdrücken: Mathematische Ausdrücke in den Antworten werden in Unicode-Text konvertiert, sodass sie im Terminal leicht lesbar sind.
- Anpassbar: Das Skript erlaubt die Auswahl des OpenAI-Modells und kann für verschiedene Anwendungsfälle angepasst werden.
In diesem Artikel werde ich den Code des Skripts im Detail erklären, seine Funktionsweise erläutern und eine Reihe komplexer Prompts durchgehen.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Python 3.x auf Ihrem Rechner installiert.
- Einen OpenAI-API-Schlüssel. Sie können ihn erhalten, indem Sie sich auf der OpenAI-Website registrieren.
- Eine virtuelle Python-Umgebung (empfohlen, um Abhängigkeiten zu isolieren).
- Die erforderlichen Python-Module.
Einrichtung der virtuellen Umgebung
Um die Abhängigkeiten dieses Projekts zu isolieren, wird empfohlen, eine virtuelle Umgebung zu verwenden. So erstellen Sie eine und installieren die benötigten Abhängigkeiten:
python3 -m venv env
source env/bin/activate # Sur Windows, utilisez env\Scripts\activate
pip install openai selenium webdriver-manager pylatexenc
Festlegen des OpenAI-API-Schlüssels
Legen Sie Ihren OpenAI-API-Schlüssel als Umgebungsvariable fest:
export OPENAI_API_KEY='votre_clé_api_ici'
Ersetzen Sie 'votre_clé_api_ici' durch Ihren tatsächlichen API-Schlüssel.
Vollständiger Code des Skripts
Hier ist der vollständige Python-Skriptcode:
#!/usr/bin/env python3
import os
import sys
import argparse
import re
from openai import OpenAI
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
from pylatexenc.latex2text import LatexNodes2Text
def get_web_content(url):
if not url:
return ""
try:
# Configure les options de Chrome
chrome_options = Options()
# Ne pas utiliser le mode headless pour éviter les problèmes de vérification humaine
# Utilise ChromeDriverManager pour gérer l\'installation de ChromeDriver
driver = webdriver.Chrome(
service=Service(ChromeDriverManager().install()), options=chrome_options
)
# Charge la page web
driver.get(url)
# Récupère le contenu textuel de la page
web_content = driver.execute_script("return document.documentElement.innerText")
# Ferme le navigateur
driver.quit()
return web_content if web_content else None
except Exception as e:
return None
def convert_latex_to_text(latex_str):
# Convertit les expressions LaTeX en texte Unicode
return LatexNodes2Text().latex_to_text(latex_str)
def clean_output(content):
# Trouve toutes les expressions LaTeX dans le contenu et les convertit
patterns = [r"\\\\[.*?\\\\]", r"\\\(.*?\\\)", r"\$\$.*?\$\$", r"\$.*?\$"]
for pattern in patterns:
matches = re.findall(pattern, content, flags=re.DOTALL)
for match in matches:
plain_text = convert_latex_to_text(match)
content = content.replace(match, plain_text)
return content
def get_response(prompt, client, model="o1-preview"):
urls = re.findall(r"(https?://\S+)", prompt)
for url in urls:
web_content = get_web_content(url)
if web_content:
prompt = prompt.replace(url, web_content)
else:
return f"Erreur: Le contenu web pour {url} ne peut être récupéré."
try:
response = client.chat.completions.create(
model=model,
messages=[
{
"role": "user",
"content": prompt,
},
],
)
first_choice_message = response.choices[0].message
content = first_choice_message.content
# Convertit les expressions LaTeX en texte lisible
cleaned_content = clean_output(content)
return cleaned_content
except Exception as e:
return f"Une erreur est survenue : {e}"
def main():
parser = argparse.ArgumentParser()
parser.add_argument("prompt", nargs="?", help="Le prompt contenant des URLs")
parser.add_argument(
"--model",
default="o1-preview",
choices=["gpt-4o", "o1-preview", "o1-mini"],
help="Le modèle OpenAI à utiliser (par défaut o1-preview)",
)
args = parser.parse_args()
openai_api_key = os.getenv("OPENAI_API_KEY")
if not openai_api_key:
raise ValueError(
"La clé API OPENAI_API_KEY n'est pas définie dans les variables d\'environnement."
)
with OpenAI(api_key=openai_api_key) as client:
prompt = args.prompt or sys.stdin.read()
response = get_response(prompt, client, model=args.model)
print(response)
if __name__ == "__main__":
main()
Erklärung des Codes
Import der benötigten Module
Das Skript beginnt mit dem Import der wesentlichen Module:
- os, sys, argparse, re: Standardmodule zur Verwaltung von Umgebungsvariablen, Kommandozeilenargumenten und regulären Ausdrücken.
- openai: Modul zur Interaktion mit der OpenAI-API.
- selenium und webdriver_manager: Für das Web-Scraping.
- pylatexenc: Zur Konvertierung von LaTeX-Ausdrücken in lesbaren Unicode-Text.
Funktion get_web_content
Diese Funktion holt den Textinhalt einer Webseite.
def get_web_content(url):
if not url:
return ""
try:
# Configure les options de Chrome
chrome_options = Options()
# Ne pas utiliser le mode headless pour éviter les problèmes de vérification humaine
# Utilise ChromeDriverManager pour gérer l\'installation de ChromeDriver
driver = webdriver.Chrome(
service=Service(ChromeDriverManager().install()), options=chrome_options
)
# Charge la page web
driver.get(url)
# Récupère le contenu textuel de la page
web_content = driver.execute_script("return document.documentElement.innerText")
# Ferme le navigateur
driver.quit()
return web_content if web_content else None
except Exception as e:
return None
Wichtige Punkte:
- Chrome-Optionen: Das Skript verwendet nicht den Headless-Modus, um Probleme mit menschenähnlichen Prüfungen zu vermeiden, die einige Seiten im Headless-Modus verursachen.
- ChromeDriverManager: Verwaltet die automatische Installation und Aktualisierung von ChromeDriver.
- Inhalts-Extraktion: Verwendet JavaScript, um den vollständigen Text der Seite zu extrahieren.
- Fehlerbehandlung: Im Fehlerfall gibt die Funktion
Nonezurück.
Funktion convert_latex_to_text
Diese Funktion konvertiert LaTeX-Ausdrücke in Unicode-Text.
def convert_latex_to_text(latex_str):
# Convertit les expressions LaTeX en texte Unicode
return LatexNodes2Text().latex_to_text(latex_str)
Wichtige Punkte:
- Verwendet die Bibliothek
pylatexenczur Konvertierung von LaTeX-Ausdrücken, sodass mathematische Formeln im Terminal lesbar werden.
Funktion clean_output
Diese Funktion verarbeitet die Antwort des Modells, um LaTeX-Ausdrücke zu konvertieren.
def clean_output(content):
# Trouve toutes les expressions LaTeX dans le contenu et les convertit
patterns = [r"\\\\[.*?\\\\]", r"\\\(.*?\\\)", r"\$\$.*?\$\$", r"\$.*?\$"]
for pattern in patterns:
matches = re.findall(pattern, content, flags=re.DOTALL)
for match in matches:
plain_text = convert_latex_to_text(match)
content = content.replace(match, plain_text)
return content
Wichtige Punkte:
- Erkennung von LaTeX-Ausdrücken: Nutzt reguläre Ausdrücke, um Formeln zu identifizieren.
- Konvertierung: Jede gefundene Formel wird in Unicode-Text umgewandelt.
- Ersetzung: Die LaTeX-Formeln werden durch ihre lesbare Entsprechung ersetzt.
Funktion get_response
Bereitet den Prompt vor, führt bei Bedarf Web-Scraping durch, ruft die OpenAI-API auf und bereinigt die Antwort.
def get_response(prompt, client, model="o1-preview"):
urls = re.findall(r"(https?://\S+)", prompt)
for url in urls:
web_content = get_web_content(url)
if web_content:
prompt = prompt.replace(url, web_content)
else:
return f"Erreur: Le contenu web pour {url} ne peut être récupéré."
try:
response = client.chat.completions.create(
model=model,
messages=[
{
"role": "user",
"content": prompt,
},
],
)
first_choice_message = response.choices[0].message
content = first_choice_message.content
# Convertit les expressions LaTeX en texte lisible
cleaned_content = clean_output(content)
return cleaned_content
except Exception as e:
return f"Une erreur est survenue : {e}"
Wichtige Punkte:
- Umgang mit URLs: Falls der Prompt URLs enthält, wird der Inhalt extrahiert und eingefügt.
- Aufruf der OpenAI-API: Sendet den modifizierten Prompt an das angegebene Modell.
- Bereinigung der Antwort: LaTeX-Ausdrücke werden für eine bessere Lesbarkeit konvertiert.
Funktion main
Verarbeitet die Kommandozeilenargumente und führt das Skript aus.
def main():
parser = argparse.ArgumentParser()
parser.add_argument("prompt", nargs="?", help="Le prompt contenant des URLs")
parser.add_argument(
"--model",
default="o1-preview",
choices=["gpt-4o", "o1-preview", "o1-mini"],
help="Le modèle OpenAI à utiliser (par défaut o1-preview)",
)
args = parser.parse_args()
openai_api_key = os.getenv("OPENAI_API_KEY")
if not openai_api_key:
raise ValueError(
"La clé API OPENAI_API_KEY n'est pas définie dans les variables d\'environnement."
)
with OpenAI(api_key=openai_api_key) as client:
prompt = args.prompt or sys.stdin.read()
response = get_response(prompt, client, model=args.model)
print(response)
Wichtige Punkte:
- Argumente: Das Skript akzeptiert einen Prompt und optional ein Modell als Argumente.
- API-Schlüssel: Prüft, ob der API-Schlüssel gesetzt ist.
- Ausführung: Ruft die Funktion
get_responseauf und gibt die Antwort aus.
Ausführung des Skripts
if __name__ == "__main__":
main()
Anwendungsbeispiele
Eine Frage, die reasoning erfordert
./openai_poc.py "Dans un triangle rectangle, si les côtés adjacents à l'angle droit mesurent 3 cm et 4 cm, calcule la longueur de l'hypoténuse."
Um die Länge der Hypotenuse in einem rechtwinkligen Dreieck zu berechnen, dessen Katheten 3 cm und 4 cm messen, verwenden wir den Satz des Pythagoras:
Eingesetzt ergibt sich:
Durch Ziehen der Quadratwurzel beider Seiten:
Also beträgt die Länge der Hypotenuse 5 cm.
Die Länge der Hypotenuse ist 5 cm.
Zusammenfassung einer Webseite erstellen
./openai_poc.py "Fais-moi un résumé de cette page : https://openai.com/index/introducing-openai-o1-preview/"
OpenAI hat am 12. September 2024 die Einführung einer neuen Serie von KI-Modellen namens OpenAI o1 angekündigt, die so konzipiert sind, dass sie mehr Zeit für das Nachdenken vor einer Antwort aufwenden. Diese Modelle sind in der Lage, Aufgaben mit komplexerem Reasoning zu bearbeiten und schwieriger Probleme in Wissenschaft, Programmierung und Mathematik zu lösen.
Das erste Modell dieser Serie, o1-preview, ist jetzt in ChatGPT und über die OpenAI-API verfügbar. Eine leichtere und kostengünstigere Version namens OpenAI o1-mini wird ebenfalls angeboten und bietet effiziente Codierungsfähigkeiten zu etwa 80 % geringeren Kosten im Vergleich zu o1-preview.
Eine einfache Multiplikation lösen
./openai_poc.py "Quel est le résultat de 15 x 12 ?"
Das Ergebnis von ist 180.
Eine einfache Gleichung lösen
./openai_poc.py "Résous l'équation 2x + 5 = 15."
Um die Gleichung zu lösen, gehen Sie wie folgt vor:
- Subtrahieren Sie 5 von beiden Seiten der Gleichung, um den Term mit der Variablen zu isolieren:
- Teilen Sie beide Seiten der Gleichung durch 2, um x zu berechnen:
Lösung : .
Einen Prozentsatz berechnen
./openai_poc.py "Quel est 20% de 250 ?"
von ist gleich 50.
Berechnung :
Flächeninhalt eines Kreises berechnen
./openai_poc.py "Calcule l'aire d'un cercle de rayon 5 cm."
Um die Fläche eines Kreises mit dem Radius 5 cm zu berechnen, verwenden wir die Flächenformel:
wobei:
- die Fläche des Kreises ist,
- der Radius des Kreises ist.
Setzen wir ein:
Also ist die Fläche des Kreises .
Wenn Sie einen näherungsweisen Wert wünschen und verwenden:
Somit beträgt die Fläche des Kreises ungefähr 78,54 cm².
Ein einfaches Integral berechnen
./openai_poc.py "Calcule l'intégrale de 0 à 1 de x^2 dx."
Um das Integral von 0 bis 1 der Funktion zu berechnen, integrieren wir bezüglich und werten den erhaltenen Ausdruck zwischen den Grenzen 0 und 1 aus.
Schritte der Berechnung :
- Integration der Funktion :
wobei C die Konstante der Integration ist.
- Auswertung zwischen den Grenzen 0 und 1 :
- Berechnung der Werte an den Grenzen :
- Subtraktion der Werte, um das Endergebnis zu erhalten :
Fazit :
Der Wert des Integrals von 0 bis 1 von ist .
Durchschnittsgeschwindigkeit berechnen
./openai_poc.py "Si une voiture parcourt 150 km en 3 heures, quelle est sa vitesse moyenne ?"
Um die Durchschnittsgeschwindigkeit eines Autos zu berechnen, das 150 km in 3 Stunden zurücklegt, verwenden wir die Formel für die Durchschnittsgeschwindigkeit:
Angewendet auf die gegebenen Werte:
Die Durchschnittsgeschwindigkeit des Autos beträgt also 50 km/h.
Klassische Mechanik
./openai_poc.py "Un bloc de 5 kg est tiré sur une surface sans frottement par une force de 20 N. Calcule son accélération."
Um die Beschleunigung eines Blocks zu berechnen, verwenden wir das zweite Newtonsche Gesetz, das besagt, dass die resultierende Kraft auf ein Objekt gleich der Masse des Objekts multipliziert mit seiner Beschleunigung ist ().
Gegeben sind:
- Masse des Blocks,
- Aufgewendete Kraft,
- Reibungsfreie Oberfläche (also keine der Reibung entgegengesetzte Kraft)
Umgestellt nach der Beschleunigung () ergibt sich:
Eingesetzt:
Antwort : Die Beschleunigung des Blocks beträgt .
Differentialgleichungen lösen
./openai_poc.py "Résous l'équation différentielle dy/dx = x^2 + y^2 avec la condition initiale y(0) = 1."
Um die Differentialgleichung
mit der Anfangsbedingung zu lösen, stellen wir fest, dass diese Gleichung nichtlinear ist und sich nicht mit elementaren Methoden wie Trennung der Variablen oder Standard-Integrationsfaktoren lösen lässt. Wir können jedoch versuchen, die Gleichung in eine besser handhabbare Form zu transformieren.
Schritt 1 : Natur der Gleichung erkennen
Die gegebene Gleichung ist eine Riccati-Gleichung der allgemeinen Form:
In unserem Fall lautet sie:
Schritt 2 : Umwandlung in eine lineare Differentialgleichung zweiter Ordnung
Zur Lösung einer Riccati-Gleichung kann folgende Substitution verwendet werden:
wobei eine zu bestimmende Funktion ist und die Ableitung von nach ist.
Berechnung von in Abhängigkeit von :
Angewandt die Quotientenregel:
Schritt 3 : Einsetzen in die ursprüngliche Gleichung
Setzen wir und in die ursprüngliche Differentialgleichung ein:
Vereinfachen:
Multiplizieren beider Seiten mit :
Vereinfachen:
Teilen durch (bei ):
Schritt 4 : Lösen der linearen Differentialgleichung zweiter Ordnung
So erhalten wir die homogene lineare Differentialgleichung zweiter Ordnung:
Diese Gleichung hat variable Koeffizienten und ist bekannt. Ihre Lösungen lassen sich nicht in elementaren Funktionen ausdrücken, sondern werden durch spezielle Funktionen gegeben, die mit Airy-Funktionen zusammenhängen.
Lösungen der Gleichung :
Die allgemeine Lösung der Gleichung ist:
wobei und die Airy-Funktionen erster und zweiter Art sind und die imaginäre Einheit ist ().
Schritt 5 : Rückkehr zu
Erinnern wir uns an:
Wenn bekannt ist, kann durch die Berechnung der Ableitung von und anschließende Division bestimmt werden.
Schritt 6 : Anwendung der Anfangsbedingung
Um die Integrationskonstanten und zu bestimmen, muss die Anfangsbedingung angewendet werden. Aufgrund der Komplexität der Airy-Funktionen mit komplexem Argument ist die explizite Berechnung jedoch aufwändig.
Fazit
Die Lösung der gegebenen Differentialgleichung mit der Anfangsbedingung lässt sich implizit mittels spezieller Funktionen (Airy-Funktionen) ausdrücken und kann nicht in elementaren Funktionen dargestellt werden.
Endantwort :
Die Lösung der Differentialgleichung mit wird implizit in Form von Airy-Funktionen angegeben und kann nicht explizit mit elementaren Funktionen ausgedrückt werden.
Elektromagnetismus
./openai_poc.py "Calcule le champ électrique à une distance r d'une charge ponctuelle Q."
Das elektrische Feld , das von einer Punktladung in einer Entfernung erzeugt wird, wird durch das Coulomb-Gesetz beschrieben. Die Formel zur Berechnung des elektrischen Feldes lautet:
wobei:
- das elektrische Feld ist (in Volt pro Meter, V/m),
- die Punktladung ist (in Coulomb, C),
- der Abstand zur Ladung ist (in Metern, m),
- die elektrische Feldkonstante (Permittivität des Vakuums) ist, mit dem ungefähren Wert .
Beispielrechnung:
Angenommen, Sie haben eine Ladung (2 Mikro-Coulomb) und möchten das elektrische Feld in einer Entfernung berechnen.
- Berechnen Sie die Konstante vor dem Bruch:
- Wenden Sie die Formel an:
Fazit :
Das elektrische Feld in einer Entfernung von von einer Punktladung beträgt .
So verwenden Sie die obige Formel, indem Sie und durch die konkreten Werte Ihres Problems ersetzen.
Chemisches Gleichgewicht
./openai_poc.py "Explique comment le principe de Le Chatelier s'applique à l'équilibre suivant : N2 + 3H2 ⇌ 2NH3."
Das Prinzip von Le Chatelier besagt, dass ein System im Gleichgewicht auf eine von außen wirkende Änderung (Störung) so reagiert, dass diese Störung vermindert wird und ein neues Gleichgewicht eintritt. Angewandt auf das folgende chemische Gleichgewicht:
kann analysiert werden, wie verschiedene Änderungen die Lage des Gleichgewichts beeinflussen.
1. Änderung der Konzentration : - Erhöhung der Konzentration der Reaktanten (N₂ oder H₂) : Wenn Distickstoff (N₂) oder Wasserstoff (H₂) dem System hinzugefügt werden, steigt die Konzentration dieser Reaktanten. Nach dem Le-Chatelier-Prinzip verschiebt sich das Gleichgewicht in die Richtung, die diese zusätzlichen Reaktanten verbraucht, also nach rechts, und begünstigt die Bildung von Ammoniak (NH₃).
-
Verminderung der Produktkonzentration (NH₃) : Wenn Ammoniak aus dem System entfernt wird, sinkt die Konzentration von NH₃. Das Gleichgewicht verschiebt sich dann nach rechts, um diese Abnahme auszugleichen, und begünstigt erneut die Bildung von Ammoniak.
-
Erhöhung der Produktkonzentration (NH₃) : Wenn Ammoniak dem System hinzugefügt wird, verschiebt sich das Gleichgewicht nach links, um den Überschuss an NH₃ zu reduzieren, und begünstigt die Bildung von N₂ und H₂.
2. Änderung des Drucks :
-
Erhöhung des Gesamtdrucks des Systems : Für Gase begünstigt eine Druckerhöhung (durch Volumenverringerung) die Reaktion, die die geringere Anzahl gasförmiger Mol liefert. In dieser Reaktion geht man von 4 Mol Gas (1 N₂ + 3 H₂) zu 2 Mol Gas (2 NH₃) über. Daher verschiebt eine Druckerhöhung das Gleichgewicht nach rechts und begünstigt die Bildung von Ammoniak.
-
Verringerung des Gesamtdrucks des Systems : Umgekehrt begünstigt eine Druckverringerung die Reaktion, die die größere Anzahl gasförmiger Mol produziert, verschiebt das Gleichgewicht nach links und fördert die Dissoziation von NH₃ in N₂ und H₂.
3. Änderung der Temperatur :
-
Exotherme Natur der Reaktion : Die Ammoniaksynthese ist eine exotherme Reaktion (), das heißt, sie setzt Wärme frei.
-
Erhöhung der Temperatur : Durch Erhöhung der Temperatur wird dem System Wärme zugeführt. Nach dem Le-Chatelier-Prinzip verschiebt sich das Gleichgewicht in die Richtung, die diese zusätzliche Wärme absorbiert, also nach links (endotherme Richtung), und begünstigt die Dissoziation von NH₃ in N₂ und H₂.
-
Senkung der Temperatur : Durch Absenken der Temperatur reagiert das System, indem es Wärme produziert, um diesen Verlust auszugleichen. Das Gleichgewicht verschiebt sich daher nach rechts (exotherme Richtung) und begünstigt die Bildung von Ammoniak.
4. Anwesenheit eines Katalysators :
- Wirkung des Katalysators : Die Zugabe eines Katalysators (z. B. fein verteiltes Eisen mit Promotoren) erhöht die Geschwindigkeit, mit der das Gleichgewicht erreicht wird, verändert aber nicht die Lage des Gleichgewichts. Er beschleunigt sowohl die Hin- als auch die Rückreaktion gleichermaßen.
Zusammenfassung :
Das Le-Chatelier-Prinzip erlaubt die Vorhersage, in welche Richtung sich ein chemisches Gleichgewicht verschiebt, wenn die Bedingungen des Systems verändert werden. Für die Ammoniaksynthese:
- Hoher Druck begünstigt die Bildung von NH₃ (weniger gasförmige Mol).
- Niedrige Temperatur begünstigt die Bildung von NH₃ (exotherme Reaktion).
- Erhöhung der Konzentrationen von N₂ oder H₂ begünstigt die Bildung von NH₃.
- Entfernen von NH₃ aus dem System begünstigt die Bildung von mehr NH₃.
Diese Prinzipien werden im Haber-Bosch-Verfahren angewandt, um die industrielle Produktion von Ammoniak zu optimieren.
Schlussfolgerung
Dieses Python-Skript bietet eine praktische Integration des Modells OpenAI o1-preview, die es ermöglicht, seine erweiterten Schlussfolgerungsfähigkeiten für ein breites Spektrum von Fragestellungen zu nutzen, vom Einfachen bis zum Komplexen. Egal, ob Sie ein neugieriger Anfänger oder ein Experte sind, der die Grenzen des Modells austesten möchte, dieses Skript ist ein nützliches Werkzeug für Ihre Projekte in der künstlichen Intelligenz.
Ressourcen
- Ankündigung des Modells OpenAI o1-preview
- Offizielle Dokumentation der OpenAI-API
- Selenium-Dokumentation
- pylatexenc-Dokumentation
- Leitfaden zu virtuellen Umgebungen in Python
Dieses Dokument wurde aus der fr-Version in die de-Sprache unter Verwendung des Modells gpt-5-mini übersetzt. Für weitere Informationen zum Übersetzungsprozess siehe https://gitlab.com/jls42/ai-powered-markdown-translator