Unternehmen investieren zunehmend in KI, da diese neuen Instruments immer häufiger in den täglichen Betrieb integriert werden. Diese kontinuierliche Innovationswelle steigert die Nachfrage nach effizienteren und zuverlässigeren Frameworks. Diesem Development folgend, Datenpizza (das Startup hinter der italienischen Tech-Neighborhood) hat gerade ein Open-Supply-Framework für GenAI mit Python namens „ Datenpizza KI.

Wenn Sie LLM-basierte Agenten erstellen, müssen Sie einen auswählen KI-Stack:

  • Sprachmodell – das Gehirn des Agenten. Die erste große Wahl ist Open Supply (d. h Lama, DeepSeek, Phi) vs. bezahlt (d. h ChatGPT, Claude, Zwillinge). Dann muss man, basierend auf dem Anwendungsfall, das LLM-Wissen berücksichtigen: generisch (weiß ein bisschen von allem wie Wikipedia) vs. themenspezifisch (z. B. fein abgestimmt auf Codierung oder Finanzen).
  • LLM-Engine – Es ist das, was das Sprachmodell betreibt, auf Eingabeaufforderungen reagiert, Bedeutung ableitet und Textual content erstellt. Im Grunde erzeugt es Intelligenz. Die am häufigsten verwendeten sind OpenAI (ChatGPT), Anthropisch (Claude), Google (Zwillinge), Und Ollama (führt Open-Supply-Modelle lokal aus).
  • KI-Framework – Es ist die Orchestrierungsebene zum Erstellen und Verwalten von Arbeitsabläufen. Anders ausgedrückt: Das Framework muss die von LLMs geschaffene Intelligenz strukturieren. Im Second wird die Landschaft dominiert von LangChain, LLamaIndexUnd CrewAI. Die neue Bibliothek Datenpizza KI fällt in diese Kategorie und möchte eine Different zu den anderen Hauptframeworks sein.

In diesem Artikel werde ich zeigen, wie das geht Verwenden Sie das neue Datapizza-Framework zum Erstellen von LLM-gestützten KI-Agenten. Ich werde einige nützliche Python-Codes vorstellen, die leicht in anderen ähnlichen Fällen angewendet werden können (einfach kopieren, einfügen, ausführen) und jede Codezeile mit Kommentaren durchgehen, damit Sie dieses Beispiel reproduzieren können.

Aufstellen

Ich werde es verwenden Ollama als LLM-Engine, da ich Modelle gerne lokal auf meinem Pc hoste. Das ist die Standardpraxis für alle Unternehmen mit sensiblen Daten. Wenn alles lokal bleibt, haben Sie die volle Kontrolle über Datenschutz, Modellverhalten und Kosten.

Zuallererst müssen Sie Laden Sie Ollama von der Web site herunter. Wählen Sie dann ein Modell aus und führen Sie den auf der Seite angegebenen Befehl aus, um das LLM abzurufen. Ich gehe mit Alibabas Qwenda es sowohl clever als auch leicht ist (ollama run qwen3).

Datenpizza KI unterstützt alle wichtigen LLM-Engines. Wir können die Einrichtung abschließen, indem wir die folgenden Befehle ausführen:

pip set up datapizza-ai
pip set up datapizza-ai-clients-openai-like

Wie in der angegeben offizielle Dokumentationkönnen wir unseren KI-Stack schnell testen, indem wir das Modell mit einer einfachen Eingabeaufforderung aufrufen und eine Frage stellen. Das Objekt OpenAILikeClient() So stellen Sie eine Verbindung zur Ollama-API her, die normalerweise unter derselben Localhost-URL gehostet wird.

from datapizza.shoppers.openai_like import OpenAILikeClient

llm = "qwen3"

immediate = '''
You're an clever assistant, present the absolute best reply to person's request. 
''' 

ollama = OpenAILikeClient(api_key="", mannequin=llm, system_prompt=immediate, base_url="http://localhost:11434/v1")

q = '''
what time is it?
'''

llm_res = ollama.invoke(q)
print(llm_res.textual content)

Chatbot

Eine andere Möglichkeit, die Leistungsfähigkeit des LLM zu testen, besteht darin, einen einfachen Chatbot zu erstellen und ein Gespräch zu führen. Dazu müssen wir bei jeder Interaktion den Chatverlauf speichern und ihn an das Modell zurückgeben und dabei angeben, was von wem gesagt wurde. Das Datapizza-Framework hat bereits eine eingebaute Speichersystem.

from datapizza.reminiscence import Reminiscence
from datapizza.sort import TextBlock, ROLE

reminiscence = Reminiscence()
reminiscence.add_turn(TextBlock(content material=immediate), function=ROLE.SYSTEM)

whereas True:
    ## Consumer
    q = enter('🙂 >')
    if q == "give up":
        break
    
    ## LLM
    llm_res = ollama.invoke(q, reminiscence=reminiscence)
    res = llm_res.textual content
    print("🍕 >", f"x1b(1;30m{res}x1b(0m")

    ## Replace Reminiscence
    reminiscence.add_turn(TextBlock(content material=q), function=ROLE.USER)
    reminiscence.add_turn(TextBlock(content material=res), function=ROLE.ASSISTANT)

Wenn Sie wollen Rufen Sie den Chatverlauf abSie können einfach auf den Speicher zugreifen. Normalerweise werden KI-Frameworks verwendet drei Rollen im Zusammenspiel mit einem LLM: „System” (Kernanweisungen), „Benutzer” (was der Mensch sagte), „Assistent“ (was der Chatbot antwortete).

reminiscence.to_dict()

Offensichtlich ist das LLM allein sehr begrenzt und kann außer Chatten nicht viel. Deshalb müssen wir ihm die Möglichkeit geben, Maßnahmen zu ergreifen, d. h. Instruments zu aktivieren.

Werkzeuge

Werkzeuge sind Der Hauptunterschied zwischen einem einfachen LLM und einem KI-Agenten. Wenn der Benutzer etwas anfordert, das über die LLM-Wissensdatenbank hinausgeht (z. B. „Wie spät ist es jetzt?„), sollte der Agent verstehen, dass er die Antwort nicht kennt, ein Device aktivieren, um zusätzliche Informationen zu erhalten (z. B. die Uhr überprüfen), das Ergebnis über das LLM ausarbeiten und eine Antwort generieren.

Mit dem Datapizza-Framework können Sie ganz einfach Instruments von Grund auf erstellen. Sie müssen nur die importieren Dekorateur @Werkzeug und jede Funktion kann für den Agenten umsetzbar sein.

from datapizza.instruments import software

@software
def get_time() -> str:
    '''Get the present time.'''
    from datetime import datetime
    return datetime.now().strftime("%H:%M")

get_time()

Weisen Sie dann das gewünschte Werkzeug zu Die Agentund Sie verfügen über eine KI, die Sprachverständnis + autonome Entscheidungsfindung + Werkzeugnutzung kombiniert.

from datapizza.brokers import Agent
import os

os.environ("DATAPIZZA_AGENT_LOG_LEVEL") = "DEBUG"  #max logging

agent = Agent(identify="single-agent", shopper=ollama, system_prompt=immediate, 
              instruments=(get_time), max_steps=2)

q = '''
what time is it?
'''

agent_res = agent.run(q)

Ein LLM-gestützter KI-Agent ist ein intelligentes System, das auf einem Sprachmodell basiert, das nicht nur reagiert, sondern auch begründet, entscheidet und handelt. Neben der Konversation (d. h. dem Chatten mit einer allgemeinen Wissensdatenbank) sind die häufigsten Aktionen, die Agenten ausführen können, folgende LAPPEN (Chatten mit Ihren Dokumenten), Abfragen (Chatten mit einer Datenbank), Websuche (Chatten mit dem gesamten Web).

Probieren wir zum Beispiel ein Net-Suchtool aus. In Python geht das am einfachsten mit dem berühmten privaten Browser DuckDuckGo. Sie können die direkt verwenden Originalbibliothek oder der Datapizza-Framework-Wrapper (pip set up datapizza-ai-tools-duckduckgo).

from datapizza.instruments.duckduckgo import DuckDuckGoSearchTool

DuckDuckGoSearchTool().search(question="powell")

Erstellen wir einen Agenten, der das Net für uns durchsuchen kann. Wenn Sie es interaktiver gestalten möchten, können Sie die KI so strukturieren, wie ich es für den Chatbot getan habe.

os.environ("DATAPIZZA_AGENT_LOG_LEVEL") = "ERROR" #flip off logging

immediate = '''
You're a journalist. You need to make assumptions, use your software to analysis, make a guess, and formulate a ultimate reply.
The ultimate reply should comprise information, dates, evidences to help your guess.
'''

reminiscence = Reminiscence()

agent = Agent(identify="single-agent", shopper=ollama, system_prompt=immediate, 
              instruments=(DuckDuckGoSearchTool()), 
              reminiscence=reminiscence, max_steps=2)

whereas True:
    ## Consumer
    q = enter('🙂 >')
    if q == "give up":
        break
    
    ## Agent
    agent_res = agent.run(q)
    res = agent_res.textual content
    print("🍕 >", f"x1b(1;30m{res}x1b(0m")

    ## Replace Reminiscence
    reminiscence.add_turn(TextBlock(content material=q), function=ROLE.USER)
    reminiscence.add_turn(TextBlock(content material=res), function=ROLE.ASSISTANT)

Multi-Agenten-System

Die wahre Stärke von Agenten ist ihre Fähigkeit miteinander zusammenarbeitengenau wie Menschen. Diese Groups werden aufgerufen Multiagentensysteme (MAS)eine Gruppe von KI-Agenten, die in einer gemeinsamen Umgebung zusammenarbeiten, um komplexe Probleme zu lösen, die für einen einzelnen Agenten zu schwierig wären.

Dieses Mal erstellen wir ein erweitertes Device: Codeausführung. Bitte beachten Sie, dass LLMs wissen, wie man programmiert, indem sie einem großen Korpus aus Code und Textual content in natürlicher Sprache ausgesetzt werden, wo sie Muster, Syntax und Semantik von Programmiersprachen lernen. Da sie jedoch keine echte Aktion ausführen können, besteht der von ihnen erstellte Code nur aus Textual content. Zusamenfassend, LLMs können Python-Code generieren, ihn aber nicht ausführen, Agenten hingegen schon.

import io
import contextlib

@software
def code_exec(code:str) -> str:
    '''Execute python code. Use all the time the perform print() to get the output'''
    output = io.StringIO()
    with contextlib.redirect_stdout(output):
        attempt:
            exec(code)
        besides Exception as e:
            print(f"Error: {e}")
    return output.getvalue()

code_exec("from datetime import datetime; print(datetime.now().strftime('%H:%M'))")

Es gibt zwei Arten von MAS: die sequentielles Verfahren stellt sicher, dass Aufgaben nacheinander und in einem linearen Verlauf ausgeführt werden. Andererseits ist die hierarchische Struktur simuliert traditionelle Organisationshierarchien für eine effiziente Aufgabendelegierung und -ausführung. Persönlich bevorzuge ich eher Letzteres, da es mehr Parallelität und Flexibilität bietet.

Mit Mit dem Datapizza-Framework können Sie zwei oder mehr Agenten mit der Funktion verknüpfen can_call(). Auf diese Weise kann ein Agent die aktuelle Aufgabe an einen anderen Agenten übergeben.

prompt_senior = '''
You're a senior Python coder. You examine the code generated by the Junior, 
and use your software to execute the code provided that it is right and protected.
'''
agent_senior = Agent(identify="agent-senior", shopper=ollama, system_prompt=prompt_senior, 
                     instruments=(code_exec))

prompt_junior = '''
You're a junior Python coder. You'll be able to generate code however you'll be able to't execute it. 
You obtain a request from the Supervisor, and your ultimate output have to be Python code to go on.
If you do not know some particular instructions, you should use your software and search the net for "tips on how to ... with python?".
'''
agent_junior = Agent(identify="agent-junior", shopper=ollama, system_prompt=prompt_junior, 
                     instruments=(DuckDuckGoSearchTool()))
agent_junior.can_call((agent_senior))

prompt_manager = '''
You recognize nothing, you are only a supervisor. After you get a request from the person, 
first you ask the Junior to generate the code, you then ask the Senior to execute it.
'''
agent_manager = Agent(identify="agent-manager", shopper=ollama, system_prompt=prompt_manager, 
                      instruments=())
agent_manager.can_call((agent_junior, agent_senior))

q = '''
Plot the Titanic dataframe. You could find the information right here: 
https://uncooked.githubusercontent.com/mdipietro09/DataScience_ArtificialIntelligence_Utils/grasp/machine_learning/data_titanic.csv
'''

agent_res = agent_manager.run(q)
#print(agent_res.textual content)

Abschluss

Dieser Artikel conflict ein Tutorial zu einführen Datenpizza KIein brandneues Framework zum Erstellen von LLM-basierten Chatbots und KI-Agenten. Die Bibliothek ist sehr flexibel und benutzerfreundlich und kann verschiedene GenAI-Anwendungsfälle abdecken. Ich habe es mit Ollama verwendet, aber es kann mit allen bekannten Engines wie OpenAI verknüpft werden.

Vollständiger Code für diesen Artikel: GitHub

Ich hoffe, es hat Ihnen gefallen! Kontaktieren Sie mich gerne für Fragen und Suggestions oder einfach nur, um mir Ihre interessanten Projekte mitzuteilen.

👉 Lassen Sie uns verbinden 👈

(Alle Bilder stammen vom Autor, sofern nicht anders angegeben)

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert