Modul fusion_hat.llm
Modul für große Sprachmodelle (LLM)
Dieses Modul stellt eine Basisklasse für große Sprachmodelle (LLMs) sowie vordefinierte LLM-Klassen bereit.
Beispiel
Eine vordefinierte LLM-Klasse importieren
>>> from fusion_hat.llm import Deepseek as LLM
>>> from fusion_hat.llm import Grok as LLM
>>> from fusion_hat.llm import Doubao as LLM
>>> from fusion_hat.llm import Qwen as LLM
>>> from fusion_hat.llm import OpenAI as LLM
Die LLM-Instanz initialisieren
>>> API_KEY = "your_api_key"
>>> MODEL = "your_model"
>>> llm = LLM(api_key=API_KEY, model=MODEL)
Für Ollama benötigen Sie keinen api_key , aber möglicherweise müssen Sie ip setzen.
>>> from fusion_hat.llm import Ollama as LLM
>>> llm = LLM(ip="localhost", model="deepseek-r1:1.5b")
Sie können auch eine grundlegende LLM-Klasse importieren.
>>> from fusion_hat.llm import LLM as LLM
Sie müssen die Base-URL setzen, die mit der OpenAI-Completion-API kompatibel ist.
>>> llm = LLM(
base_url="https://api.deepseek.com",
model=MODEL,
api_key=API_KEY,
)
Oder setzen Sie die vollständige URL, wenn sie nicht auf „/v1/chat/completions“ endet.
>>> llm = LLM(
url="https://api.deepseek.com/v1/chat/completions",
model=MODEL,
api_key=API_KEY,
)
Anweisungen festlegen
>>> llm.set_instructions("You are a helpful assistant.")
Begrüßungsnachricht festlegen
>>> llm.set_welcome("Hello, I am a helpful assistant. How can I help you?")
Das LLM mit Eingabetext auffordern
>>> input_text = "Hello"
>>> response = llm.prompt(input_text, stream=True)
>>> for next_word in response:
>>> if next_word:
>>> print(next_word, end="", flush=True)
>>> print("")
Mit Bild auffordern
>>> input_text = "Hello"
>>> image = "image.jpg"
>>> response = llm.prompt(input_text, image=image, stream=True)
>>> for next_word in response:
>>> if next_word:
>>> print(next_word, end="", flush=True)
>>> print("")
- class fusion_hat.llm.LLM(api_key=None, model=None, url=None, base_url=None, max_messages=20, authorization=Authorization.BEARER, debug=False)[Quellcode]
Basisklassen:
objectLLM-Klasse
- Parameter:
api_key (str, optional) – API-Schlüssel, Standard ist None
model (str, optional) – Modellname, Standard ist None
url (str, optional) – URL, Standard ist None
base_url (str, optional) – Base-URL, Standard ist None
max_messages (int, optional) – Maximale Nachrichtenanzahl, Standard ist DEFAULTMAX_MESSAGES
authorization (Authorization, optional) – Autorisierung, Standard ist Authorization.BEARER
- DEFAULTMAX_MESSAGES = 20
- debug(msg, end='\n', flush=True)[Quellcode]
Debug message
- Parameter:
msg (str) – Nachricht
- set_api_key(api_key)[Quellcode]
API-Schlüssel festlegen
- Parameter:
api_key (str) – API-Schlüssel
- set_base_url(base_url)[Quellcode]
Base-URL festlegen
- Parameter:
base_url (str) – Base-URL
- set_model(model)[Quellcode]
Modell festlegen
- Parameter:
model (str) – Modellname
- set_max_messages(max_messages)[Quellcode]
Maximale Nachrichtenanzahl festlegen
- Parameter:
max_messages (int) – Maximale Nachrichtenanzahl
- set(name, value)[Quellcode]
Parameter setzen
- Parameter:
name (str) – Parametername
value (str) – Parameterwert
- add_message(role, content, image_path=None)[Quellcode]
Nachricht hinzufügen
- Parameter:
role (str) – Rolle
content (str) – Inhalt
image_path (str, optional) – Bildpfad, Standard ist None
- get_base64_from_image(image_path)[Quellcode]
Base64 aus Bild abrufen
- Parameter:
image_path (str) – Bildpfad
- Rückgabe:
Base64-Zeichenkette
- Rückgabetyp:
str
- get_base_64_url_from_image(image_path)[Quellcode]
Base64-URL aus Bild abrufen
- Parameter:
image_path (str) – Bildpfad
- Rückgabe:
Base64-URL
- Rückgabetyp:
str
- set_instructions(instructions)[Quellcode]
Anweisungen festlegen
- Parameter:
instructions (str) – Anweisungen
- set_welcome(welcome)[Quellcode]
Begrüßung festlegen
- Parameter:
welcome (str) – Begrüßung
- chat(stream=False, **kwargs)[Quellcode]
Mit dem LLM chatten
- Parameter:
stream (bool, optional) – Stream, Standard ist False
**kwargs – Zusätzliche Argumente
- Rückgabe:
Antwort
- Rückgabetyp:
requests.Response
- prompt(msg, image_path=None, stream=False, **kwargs)[Quellcode]
LLM auffordern
- Parameter:
msg (str or list) – Nachricht
image_path (str, optional) – Bildpfad, Standard ist None
stream (bool, optional) – Stream, Standard ist False
**kwargs – Zusätzliche Argumente
- Rückgabe:
Antwort
- Rückgabetyp:
requests.Response
- Verursacht:
ValueError – Modell nicht gesetzt
ValueError – API-Schlüssel nicht gesetzt
ValueError – URL nicht gesetzt
ValueError – Der Prompt muss eine Zeichenkette oder eine Liste von Nachrichten sein
- decode_stream_response(line)[Quellcode]
Stream-Antwort dekodieren
- Parameter:
line (str) – Zeile
- Rückgabe:
Inhalt
- Rückgabetyp:
str
- _stream_response(response)[Quellcode]
Stream-Antwort
- Parameter:
response (requests.Response) – Antwort
- Erzeugt:
str – Inhalt
- _non_stream_response(response)[Quellcode]
Nicht-Stream-Antwort
- Parameter:
response (requests.Response) – Antwort
- Rückgabe:
Antworttext
- Rückgabetyp:
str
- print_stream(stream)[Quellcode]
Stream ausgeben
- Parameter:
stream (iterable) – Stream
- class fusion_hat.llm.Deepseek(*args, **kwargs)[Quellcode]
Basisklassen:
LLMVordefinierte Deepseek-LLM-Klasse
- Parameter:
*args – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegeben**kwargs – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegeben
- class fusion_hat.llm.Grok(*args, **kwargs)[Quellcode]
Basisklassen:
LLMVordefinierte Grok-LLM-Klasse
- Parameter:
*args – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegeben**kwargs – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegeben
- class fusion_hat.llm.Doubao(*args, **kwargs)[Quellcode]
Basisklassen:
LLMVordefinierte Doubao-LLM-Klasse
- Parameter:
*args – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegeben**kwargs – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegeben
- class fusion_hat.llm.Qwen(*args, **kwargs)[Quellcode]
Basisklassen:
LLMVordefinierte Qwen-LLM-Klasse
- Parameter:
*args – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegeben**kwargs – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegeben
- class fusion_hat.llm.OpenAI(*args, **kwargs)[Quellcode]
Basisklassen:
LLMVordefinierte OpenAI-LLM-Klasse
- Parameter:
*args – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegeben**kwargs – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegeben
- class fusion_hat.llm.Ollama(ip: str = 'localhost', *args, api_key: str = 'ollama', **kwargs)[Quellcode]
Basisklassen:
LLMVordefinierte Ollama-LLM-Klasse
- Parameter:
ip (str, optional) – IP-Adresse des Ollama-Servers. Standard ist „localhost“.
*args – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegebenapi_key (str, optional) – API-Schlüssel des Ollama-Servers. Standard ist „ollama“.
**kwargs – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegeben
- add_message(role: str, content: str, image_path: str = None) None[Quellcode]
Nachricht zur Nachrichtenliste hinzufügen
- Parameter:
role (str) – Rolle der Nachricht, z. B. „user“ , „assistant“
content (str) – Inhalt der Nachricht
image_path (str, optional) – Bildpfad, Standard ist None
- Verursacht:
ValueError – Die Rolle muss ‚user‘ oder ‚assistant‘ sein
- decode_stream_response(line: str) str[Quellcode]
Stream-Antwortzeile dekodieren
- Parameter:
line (str) – Stream-Antwortzeile
- Rückgabe:
Dekodierter Inhalt, None bei Fehler
- Rückgabetyp:
str
- class fusion_hat.llm.Gemini(*args, **kwargs)[Quellcode]
Basisklassen:
LLMVordefinierte Gemini-LLM-Klasse
- Parameter:
*args – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegeben**kwargs – Wird an
sunfounder_voice_assistant.llm.llm.LLMweitergegeben