Skip to content

Commit 2eb29da

Browse files
authored
feat: support openapi chat with non-stream (#2431)
1 parent 16396f5 commit 2eb29da

File tree

16 files changed

+3274
-26
lines changed

16 files changed

+3274
-26
lines changed

backend/api/handler/coze/agent_run_service.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,18 @@ func ChatV3(ctx context.Context, c *app.RequestContext) {
108108
return
109109
}
110110

111+
if req.Stream != nil && !*req.Stream {
112+
113+
resp, err := conversation.ConversationOpenAPISVC.OpenapiAgentRunSync(ctx, &req)
114+
if err != nil {
115+
invalidParamRequestResponse(c, err.Error())
116+
return
117+
}
118+
c.JSON(consts.StatusOK, resp)
119+
return
120+
}
121+
122+
// Streaming mode (default)
111123
c.SetStatusCode(http.StatusOK)
112124
c.Response.Header.Set("X-Accel-Buffering", "no")
113125
sseSender := sseImpl.NewSSESender(sse.NewStream(c))
@@ -195,3 +207,23 @@ func preprocessChatV3Parameters(c *app.RequestContext) error {
195207

196208
return nil
197209
}
210+
211+
// RetrieveChatOpen .
212+
// @router /v3/chat/retrieve [GET]
213+
func RetrieveChatOpen(ctx context.Context, c *app.RequestContext) {
214+
var err error
215+
var req run.RetrieveChatOpenRequest
216+
err = c.BindAndValidate(&req)
217+
if err != nil {
218+
invalidParamRequestResponse(c, err.Error())
219+
return
220+
}
221+
222+
resp, err := conversation.ConversationOpenAPISVC.RetrieveRunRecord(ctx, &req)
223+
if err != nil {
224+
c.String(consts.StatusInternalServerError, err.Error())
225+
return
226+
}
227+
228+
c.JSON(consts.StatusOK, resp)
229+
}

backend/api/handler/coze/message_service.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,3 +148,23 @@ func GetApiMessageList(ctx context.Context, c *app.RequestContext) {
148148

149149
c.JSON(consts.StatusOK, resp)
150150
}
151+
152+
// ListChatMessageApi .
153+
// @router /v3/chat/message/list [GET]
154+
func ListChatMessageApi(ctx context.Context, c *app.RequestContext) {
155+
var err error
156+
var req message.ListChatMessageApiRequest
157+
err = c.BindAndValidate(&req)
158+
if err != nil {
159+
invalidParamRequestResponse(c, err.Error())
160+
return
161+
}
162+
163+
resp, err := application.ConversationOpenAPISVC.ListChatMessageApi(ctx, &req)
164+
if err != nil {
165+
internalServerErrorResponse(ctx, c, err)
166+
return
167+
}
168+
169+
c.JSON(consts.StatusOK, resp)
170+
}

backend/api/middleware/openapi_auth.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ var needAuthPath = map[string]bool{
5252
"/v1/workflow/conversation/create": true,
5353
"/v3/chat/cancel": true,
5454
"/v1/conversation/retrieve": true,
55+
"/v3/chat/retrieve": true,
56+
"/v3/chat/message/list": true,
5557
}
5658

5759
var needAuthFunc = map[string]bool{

0 commit comments

Comments
 (0)