
Feature
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)