Skip to content

Commit d38eb3c

Browse files
committed
unify chat.py file
1 parent 087a45e commit d38eb3c

File tree

4 files changed

+11
-104
lines changed

4 files changed

+11
-104
lines changed

templates/components/multiagent/python/app/api/routers/chat.py

-57
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,22 @@
1-
import json
21
import logging
32

43
from fastapi import APIRouter, BackgroundTasks, HTTPException, Request, status
5-
from llama_index.core.agent.workflow import AgentOutput
6-
from llama_index.core.llms import MessageRole
74

85
from app.api.callbacks.llamacloud import LlamaCloudFileDownload
96
from app.api.callbacks.next_question import SuggestNextQuestions
10-
from app.api.callbacks.source_nodes import AddNodeUrl
117
from app.api.callbacks.stream_handler import StreamHandler
8+
from app.api.callbacks.source_nodes import AddNodeUrl
129
from app.api.routers.models import (
1310
ChatData,
14-
Message,
15-
Result,
1611
)
17-
from app.engine.engine import get_engine
1812
from app.engine.query_filter import generate_filters
13+
from app.workflows import create_workflow
1914

2015
chat_router = r = APIRouter()
2116

2217
logger = logging.getLogger("uvicorn")
2318

2419

25-
# streaming endpoint - delete if not needed
2620
@r.post("")
2721
async def chat(
2822
request: Request,
@@ -31,16 +25,18 @@ async def chat(
3125
):
3226
try:
3327
last_message_content = data.get_last_message_content()
34-
messages = data.get_history_messages()
28+
messages = data.get_history_messages(include_agent_messages=True)
3529

3630
doc_ids = data.get_chat_document_ids()
3731
filters = generate_filters(doc_ids)
3832
params = data.data or {}
39-
logger.info(
40-
f"Creating chat engine with filters: {str(filters)}",
33+
34+
workflow = create_workflow(
35+
params=params,
36+
filters=filters,
4137
)
42-
engine = get_engine(filters=filters, params=params)
43-
handler = engine.run(
38+
39+
handler = workflow.run(
4440
user_msg=last_message_content,
4541
chat_history=messages,
4642
stream=True,
@@ -59,35 +55,3 @@ async def chat(
5955
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
6056
detail=f"Error in chat engine: {e}",
6157
) from e
62-
63-
64-
# non-streaming endpoint - delete if not needed
65-
@r.post("/request")
66-
async def chat_request(
67-
data: ChatData,
68-
) -> Result:
69-
last_message_content = data.get_last_message_content()
70-
messages = data.get_history_messages()
71-
72-
doc_ids = data.get_chat_document_ids()
73-
filters = generate_filters(doc_ids)
74-
params = data.data or {}
75-
logger.info(
76-
f"Creating chat engine with filters: {str(filters)}",
77-
)
78-
engine = get_engine(filters=filters, params=params)
79-
80-
response = await engine.run(
81-
user_msg=last_message_content,
82-
chat_history=messages,
83-
stream=False,
84-
)
85-
output = response
86-
if isinstance(output, AgentOutput):
87-
content = output.response.content
88-
else:
89-
content = json.dumps(output)
90-
91-
return Result(
92-
result=Message(role=MessageRole.ASSISTANT, content=content),
93-
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from .agent import create_workflow

templates/types/streaming/fastapi/app/engine/engine.py templates/types/streaming/fastapi/app/workflows/agent.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from typing import List
33

44
from llama_index.core.agent.workflow import AgentWorkflow
5-
65
from llama_index.core.settings import Settings
76
from llama_index.core.tools import BaseTool
87

@@ -11,7 +10,7 @@
1110
from app.engine.tools.query_engine import get_query_engine_tool
1211

1312

14-
def get_engine(params=None, **kwargs):
13+
def create_workflow(params=None, **kwargs):
1514
if params is None:
1615
params = {}
1716
system_prompt = os.getenv("SYSTEM_PROMPT")

0 commit comments

Comments
 (0)