Spaces:
Sleeping
Sleeping
from src.utils.settings import settings | |
from llama_index.core.settings import Settings | |
from src.models.workflow_graph import GetResponseEvent, ConstructGraphEvent | |
from llama_index.core.workflow import ( | |
Event, | |
StartEvent, | |
StopEvent, | |
Workflow, | |
Context, | |
step | |
) | |
import asyncio | |
from src.utils.helper import helper | |
class DesignGraphWorkflow(Workflow): | |
async def GetRawWorkflow(self, ctx: Context, ev: StartEvent) -> GetResponseEvent: | |
_project_description = ev._project_description | |
llm = ev.llm | |
modules = settings.moduleList | |
prompt = helper._build_prompt( | |
project_desc=_project_description, | |
modules=modules | |
) | |
try: | |
response = await llm.acomplete(prompt) | |
except Exception as e: | |
raise (f"Error: {e}") | |
return GetResponseEvent(project_details=_project_description, rawResponse=response.text) | |
def ExtractGraph(self, ctx: Context, ev: GetResponseEvent) -> ConstructGraphEvent: | |
raw_llm_response = ev.rawResponse | |
graph = helper._parse_llm_response(raw_response=raw_llm_response) | |
return ConstructGraphEvent(workflowGraph=graph) | |
def exportGraph(self, ctx: Context, ev: ConstructGraphEvent) -> StopEvent: | |
graph = ev.workflowGraph | |
helper._store_graph(graph_data=graph) | |
return StopEvent(result=graph) | |