KI-Agenten mit Gedächtnis und Tools erstellen
Konfigurieren Sie einen LangChain-Agenten, der sowohl Kurzzeitgedächtnis als auch externe Tools (wie eine Wissensbasis und einen Taschenrechner) nutzen kann, um komplexe Anfragen zu bearbeiten.
Originalvideo ansehen: Googles KI-OFFENSIVE in Deutschland! Live vom AI Center Berl...Importieren Sie die notwendigen Klassen.
Importieren Sie `LLMMathChain`, `Tool`, `initialize_agent` und `AgentType`.
from langchain.chains import LLMMathChain
from langchain.agents import Tool, initialize_agent, AgentType
from langchain.chat_models import ChatOpenAI # Für AgentType.CHAT_CONVERSATIONAL_REACT_DESCRIPTIONInitialisieren Sie ein Chat-LLM für den Agenten.
Für konversationsfähige Agenten ist es oft besser, ein Chat-Modell wie `ChatOpenAI` zu verwenden.
chat_llm = ChatOpenAI(temperature=0, model_name='gpt-3.5-turbo')Definieren Sie die Tools für den Agenten.
Erstellen Sie eine Liste von `Tool`-Objekten. Jedes Tool benötigt einen Namen, eine Funktion (`func`) und eine Beschreibung (`description`).
llm_math_chain = LLMMathChain(llm=llm) # Verwenden Sie das zuvor initialisierte OpenAI LLM
tools = [
Tool(
name='Knowledge Base',
func=retriever.get_relevant_documents,
description='useful for when you need to answer questions about specific topics'
),
Tool(
name='Calculator',
func=llm_math_chain.run,
description='useful for when you need to answer questions about math'
)
]Initialisieren Sie den Agenten.
Verwenden Sie `initialize_agent`, um den Agenten mit den Tools, dem Chat-LLM, dem Agententyp und dem Gedächtnis zu konfigurieren. `verbose=True` zeigt die Denkprozesse des Agenten an.
agent = initialize_agent(
tools,
chat_llm, # Verwenden Sie das Chat-LLM hier
agent=AgentType.CHAT_CONVERSATIONAL_REACT_DESCRIPTION,
verbose=True,
memory=memory # Das zuvor erstellte ConversationBufferMemory
)Testen Sie den Agenten.
Führen Sie den Agenten mit einer Beispielanfrage aus, die sowohl Gedächtnis als auch Tools erfordert.
response = agent.run('Hallo, mein Name ist Alice. Wer ist der Gründer von The AI Epiphany und was ist 10 geteilt durch 2?')
print(response)