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: object

LLM-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: LLM

Vordefinierte Deepseek-LLM-Klasse

Parameter:
class fusion_hat.llm.Grok(*args, **kwargs)[Quellcode]

Basisklassen: LLM

Vordefinierte Grok-LLM-Klasse

Parameter:
class fusion_hat.llm.Doubao(*args, **kwargs)[Quellcode]

Basisklassen: LLM

Vordefinierte Doubao-LLM-Klasse

Parameter:
class fusion_hat.llm.Qwen(*args, **kwargs)[Quellcode]

Basisklassen: LLM

Vordefinierte Qwen-LLM-Klasse

Parameter:
class fusion_hat.llm.OpenAI(*args, **kwargs)[Quellcode]

Basisklassen: LLM

Vordefinierte OpenAI-LLM-Klasse

Parameter:
class fusion_hat.llm.Ollama(ip: str = 'localhost', *args, api_key: str = 'ollama', **kwargs)[Quellcode]

Basisklassen: LLM

Vordefinierte Ollama-LLM-Klasse

Parameter:
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: LLM

Vordefinierte Gemini-LLM-Klasse

Parameter: