Dieser Python-Code bietet eine Chatbot-Implementierung mit Kontextverwaltung mithilfe von OpenAIs GPT-3.5-Turbo- oder GPT-4-Chat-Modellen. Der Chatbot unterhält einen Gesprächsgeschichte und hilft den Kontextzustand und die Größe in Token.
Chatstack findet Ihre OpenAI -API -Schlüssel über die Umgebungsvariable von openai_api_key.
ChatRoleMessage : Eine Basisdatenklasse für Nachrichten mit Rolle, Text und Token.SystemMessage : Eine Datenklasse zur Darstellung einer Nachricht mit der Rolle des Systems.ContextMessage : Eine Datenklasse, die zusätzlichen Informationskontext für das Modell darstellt.AssistantMessage : Eine Datenklasse zur Darstellung einer Nachricht mit der Rolle des Assistenten.UserMessage : Eine Datenklasse zur Darstellung einer Nachricht mit der Rolle des Benutzers.ChatContext : Eine Klasse, die den Konversationskontext verwaltet und Antworten mithilfe von OpenAI Message Interface -Modellen generiert.ChatReponse : Eine Datenklasse, die die Modellantwort auf eine Benutzernachricht zusammen mit einem Datensatz des an das Modell gesendeten Eingabekontexte enthält, und andere wichtige Details wie das verwendete Modell, die Anzahl der verwendeten Token und die geschätzten Kosten der Anforderung.ChatContext -Klasse.ChatContext -Klasse mit der gewünschten Konfiguration.user_message oder user_message_stream mit dem Nachrichtentext des Benutzers auf, um eine Antwort aus dem Chatbot zu erhalten.Beispiel:
from chatstack import ChatContext
BASE_SYSTEM_PROMPT = "You are a clever bot. Do not apologize, or make excuses. "
BASE_SYSTEM_PROMPT += "Do not mention that you are an AI language model since that is annoying to users."
def main ():
chat_context = ChatContext ( base_system_msg_text = BASE_SYSTEM_PROMPT )
print ( "Welcome to the Chatbot!" )
while True :
user_input = input ( "You: " )
print ( "Chatbot:" )
response = chat_context . user_message ( user_input , stream = True )
print ( response . text )
if __name__ == "__main__" :
main () Die ChatContext -Klasse akzeptiert die folgenden Parameter:
min_response_tokens : Mindestanzahl von Token, um die Reaktion der Modellabschluss zu reservieren.max_response_tokens : Maximale Anzahl von Token, um eine Modellvervollständigungsreaktion zu ermöglichen.chat_context_messages : Anzahl der aktuellen Assistenten- und Benutzernachrichten, die im Kontext bleiben können.model : Der Name des zu verwendenden GPT-Modells (Standard: "GPT-3.5-Turbo").temperature : Die Temperatur für die Reaktionserzeugung des Modells.base_system_msg_text : Der Basissystem -Nachrichtentext, der den Kontext für das Modell bereitstellt.Die primäre Methode des Chatcontext ist der user_message (), mit dem der Eingangskontext für das Modell zusammengestellt und eine Fertigstellung erstellt wird.
user_message(msg_text: str) -> ChatResponseDiese Methode nimmt den Nachrichtentext eines Benutzers als Eingabe an und generiert eine Antwort aus dem Chatbot mit dem Konversationskontext.
user_message_stream(msg_text: str) -> ChatResponse Diese Methode ist ein Generator, der den Nachrichtentext eines Benutzers als Eingabe nimmt und ChatResponse -Objekte ergibt, die den inkrementellen und kumulativen Antworttext aus dem Chatbot mit dem Konversationskontext enthalten.
add_message(msg : ChatRoleMessage)Fügen Sie dem Kontext eine Nachricht für die Präsentation in das Modell in nachfolgenden Abschlussanforderungen hinzu.
msg_text (STR): Der Text der Benutzerinmeldung. ChatResponse : Eine Instanz der ChatResponse -Datenklasse, die den Modellantworttext enthält, die tatsächlichen Eingabemeldungen, die an das Modell gesendet werden, und andere relevante Details wie die Token -Zählungen und der geschätzte Preis für die Fertigstellung.