亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Heim Backend-Entwicklung Python-Tutorial Integration gro?er Sprachmodelle in Produktionsanwendungen

Integration gro?er Sprachmodelle in Produktionsanwendungen

Jan 07, 2025 am 06:24 AM

In diesem praktischen Leitfaden erfahren Sie, wie Sie eine hoch skalierbare Modellbereitstellungsl?sung mit integrierten LLMs für Ihre Anwendungen erstellen.
In Ihren Beispielen verwenden wir das ChatGPT2-Modell von Hugging Face, Sie k?nnen jedoch problemlos jedes andere Modell anschlie?en, einschlie?lich ChatGPT4, Claude usw.
Unabh?ngig davon, ob Sie eine neue Anwendung mit KI-Funktionen entwerfen oder die vorhandenen KI-Systeme verbessern, hilft Ihnen dieser Leitfaden Schritt für Schritt dabei, eine starke LLM-Integration zu schaffen.

Grundlegendes zur LLM-Integration

Bevor wir mit dem Schreiben von Code beginnen, wollen wir herausfinden, was zum Aufbau einer Produktions-LLM-Integration erforderlich ist. Beim Aufbau einer produktionsreifen LLM-Integration müssen Sie nicht nur API-Aufrufe berücksichtigen, sondern auch Dinge wie Zuverl?ssigkeit, Kosten und Stabilit?t. Ihre Produktionsanwendungen müssen Probleme wie Dienstausf?lle, Ratenbeschr?nkungen und Schwankungen in der Reaktionszeit berücksichtigen und gleichzeitig die Kosten unter Kontrolle halten.
Folgendes werden wir gemeinsam aufbauen:

  • Ein robuster API-Client, der Fehler elegant behandelt
  • Ein intelligentes Caching-System zur Optimierung von Kosten und Geschwindigkeit
  • Ein ordnungsgem??es Prompt-Management-System
  • Umfassende Fehlerbehandlung und -überwachung
  • Ein komplettes Content-Moderationssystem als Ihr Beispielprojekt

Voraussetzungen

Bevor wir mit dem Codieren beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • Python 3.8 oder neuer ist auf Ihrem Computer installiert
  • Redis-Cloud-Konto oder lokal installiert
  • Grundlegende Python-Programmierkenntnisse
  • Grundlegendes Verst?ndnis von REST-APIs
  • Ein Hugging Face API-Schlüssel (oder ein anderer LLM-Anbieterschlüssel)

M?chten Sie mitmachen? Der vollst?ndige Code ist in Ihrem GitHub-Repository verfügbar.

Einrichten Ihrer Entwicklungsumgebung

Beginnen wir damit, Ihre Entwicklungsumgebung vorzubereiten. Wir erstellen eine saubere Projektstruktur und installieren alle notwendigen Pakete.

Erstellen wir zun?chst Ihr Projektverzeichnis und richten Sie eine virtuelle Python-Umgebung ein. ?ffnen Sie Ihr Terminal und führen Sie Folgendes aus:

mkdir llm_integration && cd llm_integration
python3 -m venv env
syource env/bin/activate

Jetzt richten wir Ihre Projektabh?ngigkeiten ein. Erstellen Sie eine neue ?requirements.txt“-Datei mit diesen wesentlichen Paketen:

transformers==4.36.0
huggingface-hub==0.19.4
redis==4.6.0
pydantic==2.5.0
pydantic-settings==2.1.0
tenacity==8.2.3
python-dotenv==1.0.0
fastapi==0.104.1
uvicorn==0.24.0
torch==2.1.0
numpy==1.24.3

Lassen Sie uns zusammenfassen, warum wir jedes dieser Pakete ben?tigen:

  • Transformers: Dies ist die leistungsstarke Bibliothek von Hugging Face, die wir als Schnittstelle zum Qwen2.5-Coder-Modell verwenden werden.
  • Huggingface-Hub: Erm?glicht uns das Laden von Modellen und die Versionierung. Redis: Zur Implementierung des Anforderungs-Caching
  • pydantic: Wird zur Datenvalidierung und -einstellungen verwendet.
  • Tenacity: Verantwortlich für Ihre Wiederholungsfunktion für erh?hte Zuverl?ssigkeit
  • python-dotenv: Zum Laden von Umgebungsvariablen
  • fastapi: Erstellt Ihre API-Endpunkte mit einer kleinen Menge Code
  • uvicorn: Wird zum effizienten Ausführen Ihrer FastAPI-Anwendung verwendet
  • Taschenlampe: Zum Ausführen von Transformatormodellen und zur Handhabung maschineller Lernvorg?nge
  • numpy: Wird für numerische Berechnungen verwendet.

Installieren Sie alle Pakete mit dem Befehl:

mkdir llm_integration && cd llm_integration
python3 -m venv env
syource env/bin/activate

Lassen Sie uns Ihr Projekt mit einer klaren Struktur organisieren. Erstellen Sie diese Verzeichnisse und Dateien in Ihrem Projektverzeichnis:

transformers==4.36.0
huggingface-hub==0.19.4
redis==4.6.0
pydantic==2.5.0
pydantic-settings==2.1.0
tenacity==8.2.3
python-dotenv==1.0.0
fastapi==0.104.1
uvicorn==0.24.0
torch==2.1.0
numpy==1.24.3

Erstellen des LLM-Clients

Beginnen wir mit Ihrem LLM-Client, der die wichtigste Komponente Ihrer Bewerbung darstellt. Hier interagieren wir mit dem ChatGPT-Modell (oder einem anderen LLM, das Sie bevorzugen). Fügen Sie die folgenden Codeausschnitte zu Ihrer core/llm_client.py-Datei hinzu:

pip install -r requirements.txt

In diesem ersten Teil der yourLLMClient-Klasse legen wir die Grundlage:

  • Wir verwenden AutoModelForCausalLM und AutoTokenizer aus der Transformers-Bibliothek, um Ihr Modell zu laden
  • Der Parameter ?device_map="auto" verwaltet automatisch die GPU/CPU-Zuordnung
  • Wir verwenden Torch.float16, um die Speichernutzung zu optimieren und gleichzeitig eine gute Leistung aufrechtzuerhalten

Jetzt fügen wir die Methode hinzu, die mit Ihrem Modell kommuniziert:

llm_integration/
├── core/
│   ├── llm_client.py      # your main LLM interaction code
│   ├── prompt_manager.py  # Handles prompt templates
│   └── response_handler.py # Processes LLM responses
├── cache/
│   └── redis_manager.py   # Manages your caching system
├── config/
│   └── settings.py        # Configuration management
├── api/
│   └── routes.py          # API endpoints
├── utils/
│   ├── monitoring.py      # Usage tracking
│   └── rate_limiter.py    # Rate limiting logic
├── requirements.txt
└── main.py
└── usage_logs.json       

Lassen Sie uns aufschlüsseln, was bei dieser Vervollst?ndigungsmethode passiert:

  • Dekorator-Methode @retry hinzugefügt, um mit vorübergehenden Fehlern umzugehen.
  • Kontextmanager Torch.no_grad() verwendet, um Speicher zu sparen, indem Gradientenberechnungen deaktiviert werden.
  • Verfolgen der Token-Nutzung sowohl bei der Ein- als auch bei der Ausgabe, was für die Kostenkalkulation sehr wichtig ist.
  • Gibt ein strukturiertes W?rterbuch mit den Antwort- und Nutzungsstatistiken zurück.

Erstellen Sie Ihren LLM Response Handler

Als n?chstes müssen wir den Antworthandler hinzufügen, um die Rohausgabe des LLM zu analysieren und zu strukturieren. Tun Sie dies in Ihrer core/response_handler.py-Datei mit den folgenden Codeausschnitten:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from tenacity import retry, stop_after_attempt, wait_exponential
from typing import Dict, Optional
import logging

class LLMClient:
    def __init__(self, model_name: str = "gpt2", timeout: int = 30):
        try:
            self.tokenizer = AutoTokenizer.from_pretrained(model_name)
            self.model = AutoModelForCausalLM.from_pretrained(
                model_name,
                device_map="auto",
                torch_dtype=torch.float16
            )
        except Exception as e:
            logging.error(f"Error loading model: {str(e)}")
            # Fallback to a simpler model if the specified one fails
            self.tokenizer = AutoTokenizer.from_pretrained("gpt2")
            self.model = AutoModelForCausalLM.from_pretrained("gpt2")

        self.timeout = timeout
        self.logger = logging.getLogger(__name__)

Hinzufügen eines robusten Caching-Systems

Jetzt erstellen wir Ihr Caching-System, um die Anwendungsleistung zu verbessern und die Kosten zu senken. Fügen Sie die folgenden Codeausschnitte zu Ihrer Datei ?cache/redis_manager.py“ hinzu:

 @retry(
        stop=stop_after_attempt(3),
        wait=wait_exponential(multiplier=1, min=4, max=10),
        reraise=True
    )
    async def complete(self, 
                      prompt: str, 
                      temperature: float = 0.7,
                      max_tokens: Optional[int] = None) -> Dict:
        """Get completion from the model with automatic retries"""
        try:
            inputs = self.tokenizer(prompt, return_tensors="pt").to(
                self.model.device
            )

            with torch.no_grad():
                outputs = self.model.generate(
                    **inputs,
                    max_new_tokens=max_tokens or 100,
                    temperature=temperature,
                    do_sample=True
                )

            response_text = self.tokenizer.decode(
                outputs[0], 
                skip_special_tokens=True
            )

            # Calculate token usage for monitoring
            input_tokens = len(inputs.input_ids[0])
            output_tokens = len(outputs[0]) - input_tokens

            return {
                'content': response_text,
                'usage': {
                    'prompt_tokens': input_tokens,
                    'completion_tokens': output_tokens,
                    'total_tokens': input_tokens + output_tokens
                },
                'model': "gpt2"
            }

        except Exception as e:
            self.logger.error(f"Error in LLM completion: {str(e)}")
            raise

In den obigen Codeausschnitten haben wir eine CacheManager-Klasse erstellt, die alle Caching-Vorg?nge wie folgt abwickelt:

  • Die _generate_key-Methode, die basierend auf Eingabeaufforderungen und Parametern eindeutige Cache-Schlüssel erstellt
  • get_cached_response prüft, ob wir eine zwischengespeicherte Antwort für eine bestimmte Eingabeaufforderung haben
  • cache_response, das erfolgreiche Antworten für die zukünftige Verwendung speichert

Erstellen eines Smart Prompt Managers

Lassen Sie uns Ihren Prompt-Manager erstellen, der die Prompts für Ihr LLM-Modell verwaltet. Fügen Sie den folgenden Code zu Ihrer core/prompt_manager.py hinzu:

mkdir llm_integration && cd llm_integration
python3 -m venv env
syource env/bin/activate

Erstellen Sie dann eine Beispiel-Eingabeaufforderungsvorlage für die Inhaltsmoderation in Ihrer prompts/content_moderation.json-Datei mit Codeausschnitten:

transformers==4.36.0
huggingface-hub==0.19.4
redis==4.6.0
pydantic==2.5.0
pydantic-settings==2.1.0
tenacity==8.2.3
python-dotenv==1.0.0
fastapi==0.104.1
uvicorn==0.24.0
torch==2.1.0
numpy==1.24.3

Jetzt kann Ihr Eingabeaufforderungsmanager Eingabeaufforderungsvorlagen aus Ihrer JSON-Datei laden und erh?lt au?erdem eine formatierte Eingabeaufforderungsvorlage.

Einrichten eines Konfigurationsmanagers

Um alle Ihre LLM-Konfigurationen an einem Ort zu behalten und sie problemlos in Ihrer Anwendung wiederzuverwenden, erstellen wir Konfigurationseinstellungen. Fügen Sie den folgenden Code zu Ihrer Datei config/settings.py hinzu:

pip install -r requirements.txt

Implementierung einer Ratenbegrenzung

Als n?chstes implementieren wir eine Ratenbegrenzung, um zu steuern, wie Benutzer auf die Ressourcen Ihrer Anwendung zugreifen. Fügen Sie dazu den folgenden Code zu Ihrer Datei utils/rate_limiter.py hinzu:

llm_integration/
├── core/
│   ├── llm_client.py      # your main LLM interaction code
│   ├── prompt_manager.py  # Handles prompt templates
│   └── response_handler.py # Processes LLM responses
├── cache/
│   └── redis_manager.py   # Manages your caching system
├── config/
│   └── settings.py        # Configuration management
├── api/
│   └── routes.py          # API endpoints
├── utils/
│   ├── monitoring.py      # Usage tracking
│   └── rate_limiter.py    # Rate limiting logic
├── requirements.txt
└── main.py
└── usage_logs.json       

Im RateLimiter haben wir eine wiederverwendbare check_rate_limit-Methode implementiert, die auf jeder Route verwendet werden kann, um die Ratenbegrenzung zu handhaben, indem einfach der Zeitraum und die Anzahl der für jeden Benutzer zul?ssigen Anforderungen für einen bestimmten Zeitraum übergeben werden.

Erstellen Sie Ihre API-Endpunkte

Jetzt erstellen wir Ihre API-Endpunkte in der Datei api/routes.py, um Ihr LLM in Ihre Anwendung zu integrieren:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from tenacity import retry, stop_after_attempt, wait_exponential
from typing import Dict, Optional
import logging

class LLMClient:
    def __init__(self, model_name: str = "gpt2", timeout: int = 30):
        try:
            self.tokenizer = AutoTokenizer.from_pretrained(model_name)
            self.model = AutoModelForCausalLM.from_pretrained(
                model_name,
                device_map="auto",
                torch_dtype=torch.float16
            )
        except Exception as e:
            logging.error(f"Error loading model: {str(e)}")
            # Fallback to a simpler model if the specified one fails
            self.tokenizer = AutoTokenizer.from_pretrained("gpt2")
            self.model = AutoModelForCausalLM.from_pretrained("gpt2")

        self.timeout = timeout
        self.logger = logging.getLogger(__name__)

Hier haben wir einen /moderate-Endpunkt in der APIRouter-Klasse definiert, der für die Organisation von API-Routen verantwortlich ist. Der @lru_cache-Dekorator wird auf Abh?ngigkeitsinjektionsfunktionen (get_llm_client, get_response_handler, get_cache_manager und get_prompt_manager) angewendet, um sicherzustellen, dass Instanzen von LLMClient, CacheManager und PromptManager für eine bessere Leistung zwischengespeichert werden. Die modere_content-Funktion, dekoriert mit @router.post, definiert eine POST-Route für die Inhaltsmoderation und nutzt den Depends-Mechanismus von FastAPI, um diese Abh?ngigkeiten einzufügen. Innerhalb der Funktion erzwingt die RateLimiter-Klasse, die mit Ratenbegrenzungseinstellungen aus den Einstellungen konfiguriert ist, Anforderungsbegrenzungen.

Lassen Sie uns abschlie?end Ihre main.py aktualisieren, um alles zusammenzuführen:

 @retry(
        stop=stop_after_attempt(3),
        wait=wait_exponential(multiplier=1, min=4, max=10),
        reraise=True
    )
    async def complete(self, 
                      prompt: str, 
                      temperature: float = 0.7,
                      max_tokens: Optional[int] = None) -> Dict:
        """Get completion from the model with automatic retries"""
        try:
            inputs = self.tokenizer(prompt, return_tensors="pt").to(
                self.model.device
            )

            with torch.no_grad():
                outputs = self.model.generate(
                    **inputs,
                    max_new_tokens=max_tokens or 100,
                    temperature=temperature,
                    do_sample=True
                )

            response_text = self.tokenizer.decode(
                outputs[0], 
                skip_special_tokens=True
            )

            # Calculate token usage for monitoring
            input_tokens = len(inputs.input_ids[0])
            output_tokens = len(outputs[0]) - input_tokens

            return {
                'content': response_text,
                'usage': {
                    'prompt_tokens': input_tokens,
                    'completion_tokens': output_tokens,
                    'total_tokens': input_tokens + output_tokens
                },
                'model': "gpt2"
            }

        except Exception as e:
            self.logger.error(f"Error in LLM completion: {str(e)}")
            raise

Im obigen Code haben wir eine FastAPI-App und den Router mit api.routes unter dem Pr?fix /api/v1 erstellt. Protokollierung aktiviert, um Informationsmeldungen mit Zeitstempeln anzuzeigen. Die App wird ?localhost:8000“ mit Uvicorn und aktiviertem Hot-Reloading ausführen.

Ausführen Ihrer Anwendung

Da nun alle Komponenten vorhanden sind, k?nnen wir damit beginnen, Ihre Anwendung zum Laufen zu bringen. Erstellen Sie zun?chst eine .env-Datei in Ihrem Projektstammverzeichnis und fügen Sie HUGGINGFACE_API_KEY und REDIS_URL hinzu:

mkdir llm_integration && cd llm_integration
python3 -m venv env
syource env/bin/activate

Stellen Sie dann sicher, dass Redis auf Ihrem Computer ausgeführt wird. Auf den meisten Unix-basierten Systemen k?nnen Sie es mit dem Befehl:
starten

transformers==4.36.0
huggingface-hub==0.19.4
redis==4.6.0
pydantic==2.5.0
pydantic-settings==2.1.0
tenacity==8.2.3
python-dotenv==1.0.0
fastapi==0.104.1
uvicorn==0.24.0
torch==2.1.0
numpy==1.24.3

Jetzt k?nnen Sie mit Ihrer Bewerbung beginnen:

pip install -r requirements.txt

Ihr FastAPI-Server wird unter http://localhost:8000 ausgeführt. Die automatische API-Dokumentation wird unter http://localhost:8000/docs verfügbar sein – das ist super hilfreich zum Testen Ihrer Endpunkte!

Integrating Large Language Models in Production Applications

Testen Sie Ihre Content Moderation API

Lassen Sie uns Ihre neu erstellte API mit einer echten Anfrage testen. ?ffnen Sie ein neues Terminal und führen Sie diesen Curl-Befehl aus:

llm_integration/
├── core/
│   ├── llm_client.py      # your main LLM interaction code
│   ├── prompt_manager.py  # Handles prompt templates
│   └── response_handler.py # Processes LLM responses
├── cache/
│   └── redis_manager.py   # Manages your caching system
├── config/
│   └── settings.py        # Configuration management
├── api/
│   └── routes.py          # API endpoints
├── utils/
│   ├── monitoring.py      # Usage tracking
│   └── rate_limiter.py    # Rate limiting logic
├── requirements.txt
└── main.py
└── usage_logs.json       

Auf Ihrem Terminal sollte eine Antwort wie diese angezeigt werden:

Integrating Large Language Models in Production Applications

Hinzufügen von überwachung und Analyse

Jetzt fügen wir einige überwachungsfunktionen hinzu, um zu verfolgen, wie Ihre Anwendung funktioniert und wie viele Ressourcen verwendet werden. Fügen Sie den folgenden Code zu Ihrer Datei utils/monitoring.py hinzu:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from tenacity import retry, stop_after_attempt, wait_exponential
from typing import Dict, Optional
import logging

class LLMClient:
    def __init__(self, model_name: str = "gpt2", timeout: int = 30):
        try:
            self.tokenizer = AutoTokenizer.from_pretrained(model_name)
            self.model = AutoModelForCausalLM.from_pretrained(
                model_name,
                device_map="auto",
                torch_dtype=torch.float16
            )
        except Exception as e:
            logging.error(f"Error loading model: {str(e)}")
            # Fallback to a simpler model if the specified one fails
            self.tokenizer = AutoTokenizer.from_pretrained("gpt2")
            self.model = AutoModelForCausalLM.from_pretrained("gpt2")

        self.timeout = timeout
        self.logger = logging.getLogger(__name__)

Die UsageMonitor-Klasse führt die folgenden Vorg?nge aus:

  • Verfolgung jeder API-Anfrage mit Zeitstempeln
  • Aufzeichnung der Token-Nutzung zur Kostenüberwachung
  • Reaktionszeiten messen
  • Speichern Sie alles in einer strukturierten Protokolldatei (ersetzen Sie diese durch eine Datenbank, bevor Sie Ihre Anwendung in der Produktion bereitstellen)

Fügen Sie als N?chstes eine neue Methode zur Berechnung der Nutzungsstatistiken hinzu:

 @retry(
        stop=stop_after_attempt(3),
        wait=wait_exponential(multiplier=1, min=4, max=10),
        reraise=True
    )
    async def complete(self, 
                      prompt: str, 
                      temperature: float = 0.7,
                      max_tokens: Optional[int] = None) -> Dict:
        """Get completion from the model with automatic retries"""
        try:
            inputs = self.tokenizer(prompt, return_tensors="pt").to(
                self.model.device
            )

            with torch.no_grad():
                outputs = self.model.generate(
                    **inputs,
                    max_new_tokens=max_tokens or 100,
                    temperature=temperature,
                    do_sample=True
                )

            response_text = self.tokenizer.decode(
                outputs[0], 
                skip_special_tokens=True
            )

            # Calculate token usage for monitoring
            input_tokens = len(inputs.input_ids[0])
            output_tokens = len(outputs[0]) - input_tokens

            return {
                'content': response_text,
                'usage': {
                    'prompt_tokens': input_tokens,
                    'completion_tokens': output_tokens,
                    'total_tokens': input_tokens + output_tokens
                },
                'model': "gpt2"
            }

        except Exception as e:
            self.logger.error(f"Error in LLM completion: {str(e)}")
            raise

Aktualisieren Sie Ihre API, um die überwachungsfunktionen aus der UsageMonitor-Klasse hinzuzufügen:

from typing import Dict
import logging

class ResponseHandler:
    def __init__(self):
        self.logger = logging.getLogger(__name__)

    def parse_moderation_response(self, raw_response: str) -> Dict:
        """Parse and structure the raw LLM response for moderation"""
        try:
            # Default response structure
            structured_response = {
                "is_appropriate": True,
                "confidence_score": 0.0,
                "reason": None
            }

            # Simple keyword-based analysis
            lower_response = raw_response.lower()

            # Check for inappropriate content signals
            if any(word in lower_response for word in ['inappropriate', 'unsafe', 'offensive', 'harmful']):
                structured_response["is_appropriate"] = False
                structured_response["confidence_score"] = 0.9
                # Extract reason if present
                if "because" in lower_response:
                    reason_start = lower_response.find("because")
                    structured_response["reason"] = raw_response[reason_start:].split('.')[0].strip()
            else:
                structured_response["confidence_score"] = 0.95

            return structured_response

        except Exception as e:
            self.logger.error(f"Error parsing response: {str(e)}")
            return {
                "is_appropriate": True,
                "confidence_score": 0.5,
                "reason": "Failed to parse response"
            }

    def format_response(self, raw_response: Dict) -> Dict:
        """Format the final response with parsed content and usage stats"""
        try:
            return {
                "content": self.parse_moderation_response(raw_response["content"]),
                "usage": raw_response["usage"],
                "model": raw_response["model"]
            }
        except Exception as e:
            self.logger.error(f"Error formatting response: {str(e)}")
            raise

Testen Sie jetzt Ihren /stats-Endpunkt, indem Sie diesen Curl-Befehl ausführen:

import redis
from typing import Optional, Any
import json
import hashlib

class CacheManager:
    def __init__(self, redis_url: str, ttl: int = 3600):
        self.redis = redis.from_url(redis_url)
        self.ttl = ttl

    def _generate_key(self, prompt: str, params: dict) -> str:
        """Generate a unique cache key"""
        cache_data = {
            'prompt': prompt,
            'params': params
        }
        serialized = json.dumps(cache_data, sort_keys=True)
        return hashlib.sha256(serialized.encode()).hexdigest()

    async def get_cached_response(self, 
                                prompt: str, 
                                params: dict) -> Optional[dict]:
        """Retrieve cached LLM response"""
        key = self._generate_key(prompt, params)
        cached = self.redis.get(key)
        return json.loads(cached) if cached else None

    async def cache_response(self, 
                           prompt: str, 
                           params: dict, 
                           response: dict) -> None:
        """Cache LLM response"""
        key = self._generate_key(prompt, params)
        self.redis.setex(
            key,
            self.ttl,
            json.dumps(response)
        )

Der obige Befehl zeigt Ihnen die Statistiken Ihrer Anfragen auf dem /moderate-Endpunkt an, wie im Screenshot unten gezeigt:

Integrating Large Language Models in Production Applications

Abschluss

In diesem Tutorial haben Sie gelernt, wie Sie ein gro?es Sprachmodell in Produktionsanwendungen verwenden. Sie haben Funktionen wie API-Clients, Caching, Prompt-Management und Fehlerbehandlung implementiert. Als Beispiel für diese Konzepte haben Sie ein Content-Moderationssystem entwickelt.

Da Sie nun über eine solide Grundlage verfügen, k?nnen Sie Ihr System erweitern mit:

  • Streaming-Antworten für Echtzeitanwendungen
  • A/B-Tests für eine sofortige Verbesserung
  • Eine webbasierte Schnittstelle zum Verwalten von Eingabeaufforderungen
  • Feinabstimmung des individuellen Modells
  • Integration mit überwachungsdiensten von Drittanbietern

Bitte denken Sie daran, dass Sie in den Beispielen das ChatGPT2-Modell verwendet haben, Sie k?nnen dieses System jedoch so anpassen, dass es mit jedem LLM-Anbieter funktioniert. W?hlen Sie also das Modell, das Ihren Anforderungen entspricht und innerhalb Ihres Budgets liegt.

Bitte z?gern Sie nicht, mich zu kontaktieren, wenn Sie Fragen haben oder mir sagen m?chten, was Sie mit diesem System bauen.

Viel Spa? beim Codieren! ?

Das obige ist der detaillierte Inhalt vonIntegration gro?er Sprachmodelle in Produktionsanwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1488
72
Wie man mit der API -Authentifizierung in Python umgeht Wie man mit der API -Authentifizierung in Python umgeht Jul 13, 2025 am 02:22 AM

Der Schlüssel zum Umgang mit der API -Authentifizierung besteht darin, die Authentifizierungsmethode korrekt zu verstehen und zu verwenden. 1. Apikey ist die einfachste Authentifizierungsmethode, die normalerweise in den Anforderungsheader- oder URL -Parametern platziert ist. 2. BasicAuth verwendet Benutzername und Kennwort für die Basis64 -Codierungsübertragung, die für interne Systeme geeignet ist. 3.. OAuth2 muss das Token zuerst über Client_id und Client_secret erhalten und dann das BearerToken in den Anforderungsheader bringen. V. Kurz gesagt, die Auswahl der entsprechenden Methode gem?? dem Dokument und das sichere Speichern der Schlüsselinformationen ist der Schlüssel.

Erkl?ren Sie Python -Behauptungen. Erkl?ren Sie Python -Behauptungen. Jul 07, 2025 am 12:14 AM

Assert ist ein Inssertion -Tool, das in Python zum Debuggen verwendet wird, und wirft einen Assertionerror aus, wenn der Zustand nicht erfüllt ist. Die Syntax ist eine geltende Bedingung sowie optionale Fehlerinformationen, die für die interne Logiküberprüfung geeignet sind, z. B. Parameterprüfung, Statusbest?tigung usw., k?nnen jedoch nicht für die Sicherheits- oder Benutzereingabeprüfung verwendet werden und sollten in Verbindung mit klaren Eingabeaufforderungen verwendet werden. Es ist nur zum Hilfsdebuggen in der Entwicklungsphase verfügbar, anstatt die Ausnahmebehandlung zu ersetzen.

Was sind Python -Iteratoren? Was sind Python -Iteratoren? Jul 08, 2025 am 02:56 AM

INPYTHON, ITERATORATORSAROBJECTSHATALWOULOUPING ThroughCollections Byimplementing__iter __ () und __Next __ (). 1) IteratorsworkviATheiterProtocol, verwendete __iter __ () toreturn thiteratorand__Next __ () torethentexteemtemuntemuntilstoperationSaised.2) und

Was sind Python -Typ -Hinweise? Was sind Python -Typ -Hinweise? Jul 07, 2025 am 02:55 AM

TypHintsinpythonsolvetheProblemofAmbiguityAndpotentialbugsindynamicalpedCodeByAllowingDevelopstospecifyexpectypes

Wie man über zwei Listen gleichzeitig python iteriert Wie man über zwei Listen gleichzeitig python iteriert Jul 09, 2025 am 01:13 AM

Eine gemeinsame Methode, um zwei Listen gleichzeitig in Python zu durchqueren, besteht darin, die Funktion ZIP () zu verwenden, die mehrere Listen in der Reihenfolge und die kürzeste ist. Wenn die Listenl?nge inkonsistent ist, k?nnen Sie iTertools.zip_longest () verwenden, um die l?ngste zu sein und die fehlenden Werte auszufüllen. In Kombination mit Enumerate () k?nnen Sie den Index gleichzeitig erhalten. 1.zip () ist pr?gnant und praktisch, geeignet für die Iteration gepaarte Daten; 2.zip_longest () kann den Standardwert beim Umgang mit inkonsistenten L?ngen einfüllen. 3.Enumerate (ZIP ()) kann w?hrend des Durchlaufens Indizes erhalten und die Bedürfnisse einer Vielzahl komplexer Szenarien erfüllen.

Python Fastapi Tutorial Python Fastapi Tutorial Jul 12, 2025 am 02:42 AM

Um moderne und effiziente APIs mit Python zu schaffen, wird Fastapi empfohlen. Es basiert auf Eingabeaufforderungen an Standardpython -Typ und kann automatisch Dokumente mit ausgezeichneter Leistung generieren. Nach der Installation von Fastapi und ASGI Server Uvicorn k?nnen Sie Schnittstellencode schreiben. Durch das Definieren von Routen, das Schreiben von Verarbeitungsfunktionen und die Rückgabe von Daten kann schnell APIs erstellt werden. Fastapi unterstützt eine Vielzahl von HTTP -Methoden und bietet automatisch generierte Swaggerui- und Redoc -Dokumentationssysteme. URL -Parameter k?nnen durch Pfaddefinition erfasst werden, w?hrend Abfrageparameter durch Einstellen von Standardwerten für Funktionsparameter implementiert werden k?nnen. Der rationale Einsatz pydantischer Modelle kann dazu beitragen, die Entwicklungseffizienz und Genauigkeit zu verbessern.

Wie man eine API mit Python testet Wie man eine API mit Python testet Jul 12, 2025 am 02:47 AM

Um die API zu testen, müssen Sie Pythons Anfragebibliothek verwenden. In den Schritten werden die Bibliothek installiert, Anfragen gesendet, Antworten überprüfen, Zeitüberschreitungen festlegen und erneut werden. Installieren Sie zun?chst die Bibliothek über PipinstallRequests. Verwenden Sie dann Requests.get () oder Requests.Post () und andere Methoden zum Senden von GET- oder Post -Anfragen. überprüfen Sie dann die Antwort. Fügen Sie schlie?lich Zeitüberschreitungsparameter hinzu, um die Zeitüberschreitungszeit festzulegen, und kombinieren Sie die Wiederholungsbibliothek, um eine automatische Wiederholung zu erreichen, um die Stabilit?t zu verbessern.

Einrichten und Verwenden von virtuellen Python -Umgebungen Einrichten und Verwenden von virtuellen Python -Umgebungen Jul 06, 2025 am 02:56 AM

Eine virtuelle Umgebung kann die Abh?ngigkeiten verschiedener Projekte isolieren. Der Befehl ist mit Pythons eigenem Venvidenmodul erstellt und ist Python-Mvenvenv. Aktivierungsmethode: Windows verwendet Env \ scripts \ aktivieren, macOS/Linux verwendet SourceEnv/bin/aktivieren; Das Installationspaket verwendet PipInstall, verwenden Sie Pipfreeze> Anforderungen.txt, um Anforderungsdateien zu generieren, und verwenden Sie Pipinstall-Rrequirements.txt, um die Umgebung wiederherzustellen. Zu den Vorsichtsma?nahmen geh?ren nicht das Senden von Git, reaktivieren Sie jedes Mal, wenn das neue Terminal ge?ffnet wird, und die automatische Identifizierung und Umschaltung kann von IDE verwendet werden.

See all articles