Spaces:
Sleeping
Sleeping
| from langgraph.graph import StateGraph,START,END | |
| from langchain_core.messages import HumanMessage,AIMessage,AnyMessage | |
| from langgraph.graph.message import add_messages | |
| from pydantic import BaseModel | |
| from typing import Annotated,Optional,List,TypedDict | |
| from dotenv import load_dotenv | |
| import os | |
| from IPython.display import display,Image,Markdown | |
| from groq import Groq | |
| import random | |
| import gradio as gr | |
| class State(TypedDict): | |
| messages:Annotated[List[AnyMessage],add_messages] | |
| llm=Groq(base_url="https://api.groq.com",api_key=os.getenv("GROQ_API_KEY")) | |
| def chat(oldState:State): | |
| # user_prompt=oldState['messages'][-1] | |
| formatted_messages=[] | |
| role=None | |
| for message in oldState['messages']: | |
| if isinstance(message,HumanMessage): | |
| role="user" | |
| else: | |
| role="assistant" | |
| formatted_messages.append({"role":role,"content":message.content}) | |
| formatted_messages.insert(0,{"role":"system","content":"You are a helpful assistant"}) | |
| response=llm.chat.completions.create( | |
| model="llama-3.3-70b-versatile", | |
| messages=formatted_messages | |
| ) | |
| ai=AIMessage(content=response.choices[0].message.content) | |
| return {"messages":[ai]} | |
| graph_builder=StateGraph(State) | |
| graph_builder.add_node("chat",chat) | |
| graph_builder.add_edge(START,"chat") | |
| graph_builder.add_edge("chat",END) | |
| graph=graph_builder.compile() | |
| def gradio_chat(user_prompt,history): | |
| messages = [] | |
| for human, bot in history: | |
| messages.append(HumanMessage(content=human)) | |
| messages.append(AIMessage(content=bot)) | |
| messages.append(HumanMessage(content=user_prompt)) | |
| state = {"messages": messages} | |
| result=graph.invoke(state) | |
| reply=result["messages"][-1].content | |
| return reply | |
| app=gr.ChatInterface( | |
| fn=gradio_chat, | |
| title="Chat Bot, powered by Syed Muhammad Raza Ali Zaidi", | |
| description="Chat with Llama 3.3" | |
| ) | |
| app.launch() |