Spaces:
Build error
Build error
File size: 2,106 Bytes
33890b1 be995a4 33890b1 be995a4 1dd50d7 3b1d5fe 14ac8e9 3b1d5fe be995a4 33890b1 be995a4 1dd50d7 3b1d5fe 90dcfc0 be995a4 90dcfc0 be995a4 90dcfc0 be995a4 3b1d5fe be995a4 3b1d5fe 33890b1 3b1d5fe 006ec78 be995a4 006ec78 be995a4 f056e53 be995a4 14ac8e9 f056e53 be995a4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | # src/langgraphagenticai/graph/graph_builder.py
from langchain_core.language_models import BaseLanguageModel
from langgraph.checkpoint.memory import MemorySaver
from src.langgraphagenticai.graph.graph_builder_blog import BlogGraphBuilder
from src.langgraphagenticai.graph.graph_builder_basic import BasicChatbotGraphBuilder
from src.langgraphagenticai.graph.graph_bulider_tool import ChatbotWithToolGraphBuilder
from src.langgraphagenticai.graph.graph_builder_sdlc import SdlcGraphBuilder
class GraphBuilder:
def __init__(self, llm: BaseLanguageModel):
self.llm = llm
self.memory = MemorySaver()
self.blog_builder = BlogGraphBuilder(self.llm, self.memory)
self.basic_builder = BasicChatbotGraphBuilder(self.llm, self.memory)
self.tool_builder = ChatbotWithToolGraphBuilder(self.llm, self.memory)
self.sdlc_builder = SdlcGraphBuilder(self.llm, self.memory)
def validate_and_standardize_structure(self, user_input: str) -> list:
"""
Uses an LLM to interpret user input and generate a standardized list of blog section names.
Ensures the user's specified structure is respected if provided.
Args:
user_input (str): The full user input from the Streamlit form (e.g., "Topic: AI\nStructure: Intro, Benefits, Summary").
Returns:
List[str]: A list of standardized section names (e.g., ["Intro", "Benefits", "Summary"]).
"""
return self.blog_builder.validate_and_standardize_structure(user_input)
def setup_graph(self, usecase: str):
"""
Sets up the appropriate graph based on the selected use case.
"""
if usecase == "Basic Chatbot":
return self.basic_builder.build_graph()
elif usecase == "Chatbot with Tool":
return self.tool_builder.build_graph()
elif usecase == "Blog Generation":
return self.blog_builder.build_graph()
elif usecase == "SDLC":
return self.sdlc_builder.build_graph()
else:
raise ValueError(f"Unknown use case: {usecase}") |