Skip to content

Commit 1c34874

Browse files
authored
feat(chat): add chat events (#35)
1 parent 8c523d5 commit 1c34874

File tree

2 files changed

+154
-18
lines changed

2 files changed

+154
-18
lines changed

libs/api/hiagent_api/chat.py

Lines changed: 100 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,62 +21,121 @@
2121

2222
from hiagent_api.base import AppAPIMixin, Service
2323
from hiagent_api.chat_types import (
24+
AgentErrorChatEvent,
2425
AgentIntentionChatEvent,
2526
AgentJumpChatEvent,
2627
AgentTakeOverChatEvent,
2728
AgentThoughtChatEvent,
2829
AgentThoughtEndChatEvent,
2930
AgentThoughtUpdateChatEvent,
31+
AsyncResumeAppWorkflowRequest,
32+
AsyncResumeAppWorkflowResponse,
3033
BlockingChatResponse,
34+
CancelConversationTopRequest,
35+
ChatAgainRequest,
36+
ChatContinueRequest,
3137
ChatEvent,
3238
ChatRequest,
39+
ClearLongMemoryRequest,
40+
ClearMessageRequest,
3341
CreateConversationRequest,
3442
CreateConversationResponse,
43+
DeepSearchExtractionChatEvent,
44+
DeepSearchExtractionEndChatEvent,
45+
DeepSearchExtractionStartChatEvent,
46+
DeepSearchQueryChatEvent,
47+
DeepSearchQueryEndChatEvent,
48+
DeepSearchQueryStartChatEvent,
49+
DeepSearchThinkChatEvent,
50+
DeepSearchThinkEndChatEvent,
51+
DeepSearchThinkStartChatEvent,
52+
DeleteConversationRequest,
53+
DeleteLongMemoryRequest,
54+
DeleteMessageRequest,
55+
EmptyResponse,
56+
EventTriggerWebhookResponse,
57+
FeedbackRequest,
58+
FlowCostWorkflowEvent,
59+
FlowEndChatEvent,
60+
FlowEndWorkflowEvent,
61+
FlowErrorWorkflowEvent,
62+
FlowInterruptedWorkflowEvent,
63+
FlowStartChatEvent,
64+
FlowStartWorkflowEvent,
3565
GetAppConfigPreviewRequest,
3666
GetAppConfigPreviewResponse,
67+
GetAppUserVariablesRequest,
68+
GetAppUserVariablesResponse,
69+
GetConversationInputsRequest,
70+
GetConversationInputsResponse,
71+
GetConversationListRequest,
72+
GetConversationListResponse,
73+
GetConversationMessageRequest,
74+
GetConversationMessageResponse,
75+
GetMessageInfoRequest,
76+
GetMessageInfoResponse,
77+
GetOpeningConfigOpenRequest,
78+
GetOpeningConfigOpenResponse,
79+
GetSuggestedQuestionsRequest,
80+
GetSuggestedQuestionsResponse,
3781
InterruptedChatEvent,
3882
KnowledgeGraphRetrieveChatEvent,
3983
KnowledgeGraphRetrieveEndChatEvent,
4084
KnowledgeRetrieveChatEvent,
4185
KnowledgeRetrieveEndChatEvent,
86+
ListLongMemoryRequest,
87+
ListLongMemoryResponse,
88+
ListOauth2TokenRequest,
89+
ListOauth2TokenResponse,
4290
LongTermMemoryRetrieveChatEvent,
4391
LongTermMemoryRetrieveEndChatEvent,
4492
MessageChatEvent,
4593
MessageCostChatEvent,
4694
MessageEndChatEvent,
4795
MessageFailedChatEvent,
4896
MessageOutputEndChatEvent,
97+
MessageOutputEndWorkflowEvent,
4998
MessageOutputStartChatEvent,
99+
MessageOutputStartWorkflowEvent,
50100
MessageStartChatEvent,
101+
MessageWorkflowEvent,
51102
QARetrieveChatEvent,
103+
QueryAppMessageOauthStatusOpenRequest,
104+
QueryAppMessageOauthStatusResponse,
105+
QueryAppSkillAsyncTaskRequest,
106+
QueryAppSkillAsyncTaskResponse,
107+
QueryRunAppProcessRequest,
108+
QueryRunAppProcessResponse,
109+
QueryTriggerRunRecordsRequest,
110+
QueryTriggerRunRecordsResponse,
111+
RunAppWorkflowRequest,
112+
RunAppWorkflowResponse,
113+
SetAppUserVariablesRequest,
114+
SetConversationTopRequest,
115+
SetMessageAnswerUsedRequest,
116+
StopMessageRequest,
52117
StreamingChatEventType,
118+
StreamingWorkflowEventType,
53119
SuggestionChatEvent,
54120
SuggestionCostChatEvent,
121+
SyncResumeAppWorkflowRequest,
122+
SyncResumeAppWorkflowResponse,
123+
SyncRunAppWorkflowRequest,
124+
SyncRunAppWorkflowResponse,
55125
TerminologyRetrieveChatEvent,
56126
TerminologyRetrieveEndChatEvent,
57127
ThinkMessageChatEvent,
58128
ThinkMessageOutputEndChatEvent,
59129
ThinkMessageOutputStartChatEvent,
60130
ToolMessageChatEvent,
61131
ToolMessageOutputEndChatEvent,
132+
ToolMessageOutputEndWorkflowEvent,
62133
ToolMessageOutputStartChatEvent,
63-
ChatAgainRequest, GetConversationListRequest, GetConversationListResponse, GetConversationInputsRequest,
64-
GetConversationInputsResponse, UpdateConversationRequest, EmptyResponse, DeleteConversationRequest,
65-
StopMessageRequest, ClearMessageRequest, GetConversationMessageRequest, GetConversationMessageResponse,
66-
GetMessageInfoRequest, GetMessageInfoResponse, DeleteMessageRequest, FeedbackRequest, SetMessageAnswerUsedRequest,
67-
GetSuggestedQuestionsRequest, GetSuggestedQuestionsResponse, RunAppWorkflowRequest, RunAppWorkflowResponse,
68-
SyncRunAppWorkflowRequest, SyncRunAppWorkflowResponse, QueryRunAppProcessRequest, QueryRunAppProcessResponse,
69-
ListOauth2TokenRequest, ListOauth2TokenResponse, EventTriggerWebhookResponse, ChatContinueRequest,
70-
ListLongMemoryRequest, ListLongMemoryResponse, UpdateLongMemoryRequest, DeleteLongMemoryRequest,
71-
ClearLongMemoryRequest, AsyncResumeAppWorkflowRequest, AsyncResumeAppWorkflowResponse, SetConversationTopRequest,
72-
CancelConversationTopRequest, QueryAppSkillAsyncTaskRequest, QueryAppSkillAsyncTaskResponse,
73-
SyncResumeAppWorkflowRequest, SyncResumeAppWorkflowResponse, WorkflowEvent, StreamingWorkflowEventType,
74-
FlowStartWorkflowEvent, FlowEndWorkflowEvent, FlowErrorWorkflowEvent, ToolMessageOutputEndWorkflowEvent,
75-
ToolMessageOutputStartWorkflowEvent, ToolMessageWorkflowEvent, FlowCostWorkflowEvent, FlowInterruptedWorkflowEvent,
76-
MessageOutputStartWorkflowEvent, MessageOutputEndWorkflowEvent, MessageWorkflowEvent, GetAppUserVariablesRequest,
77-
GetAppUserVariablesResponse, SetAppUserVariablesRequest, QueryTriggerRunRecordsRequest,
78-
QueryTriggerRunRecordsResponse, GetOpeningConfigOpenRequest, GetOpeningConfigOpenResponse,
79-
QueryAppMessageOauthStatusOpenRequest, QueryAppMessageOauthStatusResponse
134+
ToolMessageOutputStartWorkflowEvent,
135+
ToolMessageWorkflowEvent,
136+
UpdateConversationRequest,
137+
UpdateLongMemoryRequest,
138+
WorkflowEvent,
80139
)
81140

82141

@@ -957,6 +1016,30 @@ def parse_chat_event(event_data: dict) -> Optional[ChatEvent]:
9571016
return ThinkMessageOutputEndChatEvent.model_validate(event_data)
9581017
case StreamingChatEventType.think_message:
9591018
return ThinkMessageChatEvent.model_validate(event_data)
1019+
case StreamingChatEventType.agent_error:
1020+
return AgentErrorChatEvent.model_validate(event_data)
1021+
case StreamingChatEventType.deep_search_think_start:
1022+
return DeepSearchThinkStartChatEvent.model_validate(event_data)
1023+
case StreamingChatEventType.deep_search_think_end:
1024+
return DeepSearchThinkEndChatEvent.model_validate(event_data)
1025+
case StreamingChatEventType.deep_search_think:
1026+
return DeepSearchThinkChatEvent.model_validate(event_data)
1027+
case StreamingChatEventType.deep_search_query_start:
1028+
return DeepSearchQueryStartChatEvent.model_validate(event_data)
1029+
case StreamingChatEventType.deep_search_query_end:
1030+
return DeepSearchQueryEndChatEvent.model_validate(event_data)
1031+
case StreamingChatEventType.deep_search_query:
1032+
return DeepSearchQueryChatEvent.model_validate(event_data)
1033+
case StreamingChatEventType.deep_search_extraction_start:
1034+
return DeepSearchExtractionStartChatEvent.model_validate(event_data)
1035+
case StreamingChatEventType.deep_search_extraction_end:
1036+
return DeepSearchExtractionEndChatEvent.model_validate(event_data)
1037+
case StreamingChatEventType.deep_search_extraction:
1038+
return DeepSearchExtractionChatEvent.model_validate(event_data)
1039+
case StreamingChatEventType.flow_start:
1040+
return FlowStartChatEvent.model_validate(event_data)
1041+
case StreamingChatEventType.flow_end:
1042+
return FlowEndChatEvent.model_validate(event_data)
9601043

9611044
return None
9621045

libs/api/hiagent_api/chat_types.py

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ class GetAppConfigPreviewResponse(BaseSchema):
137137
validation_alias="OpenMessage",
138138
default="",
139139
)
140-
open_query: str = Field(
140+
open_query: list[str] = Field(
141141
description="open query",
142142
validation_alias="OpenQuery",
143143
default="",
@@ -399,19 +399,35 @@ class StreamingChatEventType(StrEnum):
399399
think_message_output_start = "think_message_output_start"
400400
think_message = "think_message"
401401
think_message_output_end = "think_message_output_end"
402+
agent_error = "agent_error"
403+
deep_search_think_start = "deep_search_think_start"
404+
deep_search_think = "deep_search_think"
405+
deep_search_think_end = "deep_search_think_end"
406+
deep_search_query_start = "deep_search_query_start"
407+
deep_search_query = "deep_search_query"
408+
deep_search_query_end = "deep_search_query_end"
409+
deep_search_extraction_start = "deep_search_extraction_start"
410+
deep_search_extraction = "deep_search_extraction"
411+
deep_search_extraction_end = "deep_search_extraction_end"
412+
flow_start = "flow_start"
413+
flow_end = "flow_end"
402414

403415

404416
class ChatEvent(BaseSchema):
405417
event: str = Field(
418+
default="",
406419
description="event",
407420
)
408421
task_id: str = Field(
422+
default="",
409423
description="task id",
410424
)
411425
id: str = Field(
426+
default="",
412427
description="id",
413428
)
414429
conversation_id: str = Field(
430+
default="",
415431
description="conversation id",
416432
)
417433
created_at: int = Field(
@@ -768,6 +784,43 @@ class ThinkMessageChatEvent(ChatEvent):
768784

769785
class ThinkMessageOutputEndChatEvent(ChatEvent): ...
770786

787+
class AgentErrorChatEvent(ChatEvent):
788+
error_msg: str = Field(
789+
description="error message",
790+
)
791+
792+
class DeepSearchThinkStartChatEvent(ChatEvent): ...
793+
794+
class DeepSearchThinkChatEvent(ChatEvent):
795+
content: str = Field(
796+
description="think content",
797+
)
798+
799+
class DeepSearchThinkEndChatEvent(ChatEvent): ...
800+
801+
class DeepSearchQueryStartChatEvent(ChatEvent): ...
802+
803+
class DeepSearchQueryChatEvent(ChatEvent):
804+
content: str = Field(
805+
description="query content",
806+
)
807+
808+
class DeepSearchQueryEndChatEvent(ChatEvent): ...
809+
810+
class DeepSearchExtractionStartChatEvent(ChatEvent): ...
811+
812+
class DeepSearchExtractionChatEvent(ChatEvent):
813+
content: str = Field(
814+
description="extraction content",
815+
)
816+
817+
class DeepSearchExtractionEndChatEvent(ChatEvent): ...
818+
819+
class FlowStartChatEvent(ChatEvent):
820+
run_id: str
821+
822+
class FlowEndChatEvent(ChatEvent):
823+
run_id: str
771824

772825
class ChatAgainRequest(BaseSchema):
773826
app_key: str = Field(

0 commit comments

Comments
 (0)