Feature

  • No memory
  • No tools

Content

  • Graph stream method
  • Chat looping
  • Use free Llama Model using the Groq interface
from typing import TypedDict, Annotated
from langgraph.graph import add_messages, StateGraph, END
from langchain_groq import ChatGroq
from langchain_core.messages import AIMessage, HumanMessage
from dotenv import load_dotenv
 
load_dotenv()
 
llm = ChatGroq(model="llama-3.1-8b-instant")
 
class BasicChatState(TypedDict):
    messages: Annotated[list, add_messages]
 
 
def chatbot(state: BasicChatState):
    return {
        "messages": [llm.invoke(state["messages"])],
    }
 
graph = StateGraph(BasicChatState)
 
graph.add_node("chatbot", chatbot)
graph.set_entry_point("chatbot")
graph.add_edge("chatbot", END)
 
app = graph.compile()
 
while True:
    user_input = input("User: ")
    if(user_input == "exit"):
        break
 
    result =  app.invoke({
        "messages": [HumanMessage(content=user_input)]
    })
    print("AI: ", result["messages"][-1].content)