llm = ChatOpenAI(model="gpt-3.5-turbo-0125", temperature=0)
prompt = hub.pull("hwchase17/openai-functions-agent")
tools = [TavilySearchResults()]
agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
agent_executor.invoke({"input": "how can langsmith help with testing?"})
Input | Prediction |
---|---|
Hello! | How |
Hello! How | can |
Hello! How can | I |
Hello! How can I | as- |
Hello! How can i as- | -sist |
Hello! How can i assist | you |
Hello! How can i assist you | today |
Hello! How can i assist you today | ? |
<|im_start|>system
Sie sind ein KI-Assistent. Sie erhalten eine Aufgabe. Sie müssen eine detaillierte und lange Antwort generieren.
<|im_start|>user
Generieren Sie einen Satz mit etwa fünfzehn Wörtern, der all diese Daten beschreibt:
Mitsommerhaus
Typ: Restaurant;
Essen Chinesisch;
Preisspanne: moderat;
Kundenbewertung: 3 von 5;
Ort: in der Nähe vom Hofbräuhaus
<|im_start|>assistant
Das Mittsommerhaus ist ein moderatpreisiges Restaurant in der Nähe vom Hofbräuhaus, bietet chinesisches Essen an und hat eine Kundenbewertung von 3 von 5.
<|im_end|>
Systemprompt
Prompt
Antwort
https://the-prompt-engineer.beehiiv.com/p/3-fewshot-prompting
Text
https://www.linkedin.com/pulse/state-autonomous-ai-agents-dean-meyer/
https://python.langchain.com/docs/use_cases/more/agents
https://blog.research.google/2022/11/react-synergizing-reasoning-and-acting.html
https://blog.research.google/2022/11/react-synergizing-reasoning-and-acting.html
ReAct
Tools
https://github.com/jwa91/LangGraph-Expense-Tracker/
https://blog.langchain.dev/code-execution-with-langgraph/
https://github.com/assafelovic/gpt-researcher/
from langgraph.graph import MessageGraph, END
workflow = MessageGraph()
workflow.add_node("chatbot", model)
workflow.set_entry_point("chatbot")
workflow.add_edge("chatbot", END)
graph_app = workflow.compile()
from langgraph.graph import StateGraph, MessageGraph
def reducer(a: list, b: int | None) -> int:
if b is not None:
return a + [b]
return a
class State(TypedDict):
x: Annotated[list, reducer]
class ConfigSchema(TypedDict):
r: float
graph = StateGraph(State, config_schema=ConfigSchema)
def myfunc(state):
answer = state["x"][-1]
graph.add_node("agent", myfunc)
graph.add_node("chatbot", async (state: BaseMessage[]) => {
return model.invoke(state);
});
workflow.add_node("action", ToolNode(tools))
graph.add_edge("step1", "step2") def should_continue(data) if isinstance(data["agent_outcome"], AgentFinish): return "end" else: return "continue" graph.add_conditional_edges("agent", should_continue, {"continue": "next_action",
"end": END}
)
Context oder VectorStore?