Skip to content

Commit 791dfd0

Browse files
authored
feat: route pipe webhook through message answer flow (#2245)
1 parent 3f384ed commit 791dfd0

8 files changed

Lines changed: 369 additions & 13 deletions

File tree

authz/authz.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ p, anonymous, *, /api/analyze-task
9494
p, anonymous, *, /api/claim-store
9595
p, anonymous, *, /api/is-session-duplicated
9696
p, anonymous, *, /api/add-node-tunnel
97+
p, anonymous, *, /api/chat-webhook/*
9798
9899
g, admin, user
99100
g, user, anonymous

controllers/message_answer.go

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"github.com/beego/beego/context"
2424
"github.com/the-open-agent/openagent/conf"
2525
"github.com/the-open-agent/openagent/embedding"
26+
"github.com/the-open-agent/openagent/i18n"
2627
"github.com/the-open-agent/openagent/model"
2728
"github.com/the-open-agent/openagent/object"
2829
"github.com/the-open-agent/openagent/util"
@@ -46,10 +47,16 @@ func (c *ApiController) GetMessageAnswer() {
4647
}
4748

4849
func (c *ApiController) generateMessageAnswer(id string, responseWriter http.ResponseWriter, host string) {
49-
lang := c.GetAcceptLanguage()
50+
_, signedIn := c.CheckSignedIn()
51+
generateMessageAnswer(id, responseWriter, host, c.GetAcceptLanguage(), signedIn, c.ResponseError)
52+
}
53+
54+
func generateMessageAnswer(id string, responseWriter http.ResponseWriter, host string, lang string, signedIn bool, responseError func(string, ...interface{})) {
5055
responseErrorStream := func(message *object.Message, errorText string) {
5156
if err := writeMessageErrorStream(responseWriter, lang, message, errorText); err != nil {
52-
c.ResponseError(err.Error())
57+
if responseError != nil {
58+
responseError(err.Error())
59+
}
5360
}
5461
}
5562

@@ -107,7 +114,7 @@ func (c *ApiController) generateMessageAnswer(id string, responseWriter http.Res
107114
KnowledgeCount: 10,
108115
}
109116
} else {
110-
responseErrorStream(message, fmt.Sprintf(c.T("account:The store: %s is not found"), chat.Store))
117+
responseErrorStream(message, fmt.Sprintf(i18n.Translate(lang, "account:The store: %s is not found"), chat.Store))
111118
return
112119
}
113120
}
@@ -166,8 +173,7 @@ func (c *ApiController) generateMessageAnswer(id string, responseWriter http.Res
166173
return
167174
}
168175

169-
_, ok := c.CheckSignedIn()
170-
if !ok {
176+
if !signedIn {
171177
var count int
172178
count, err = object.GetNearMessageCount(message.User, store.LimitMinutes)
173179
if err != nil {
@@ -222,7 +228,7 @@ func (c *ApiController) generateMessageAnswer(id string, responseWriter http.Res
222228
if chat.Tool == "" && store.KnowledgeCount != 0 {
223229
knowledge, vectorScores, embeddingResult, err = object.GetNearestKnowledge(store.Name, store.VectorStores, store.SearchProvider, embeddingProvider, embeddingProviderObj, modelProvider, store.Owner, question, store.KnowledgeCount, lang)
224230
if err != nil && err.Error() != "no knowledge vectors found" {
225-
err = fmt.Errorf(c.T("message_answer:object.GetNearestKnowledge() error, %s"), err.Error())
231+
err = fmt.Errorf(i18n.Translate(lang, "message_answer:object.GetNearestKnowledge() error, %s"), err.Error())
226232
responseErrorStream(message, err.Error())
227233
return
228234
}
@@ -293,7 +299,9 @@ func (c *ApiController) generateMessageAnswer(id string, responseWriter http.Res
293299
}
294300
if err != nil {
295301
if strings.Contains(err.Error(), "write tcp") {
296-
c.ResponseError(err.Error())
302+
if responseError != nil {
303+
responseError(err.Error())
304+
}
297305
return
298306
}
299307
responseErrorStream(message, err.Error())

controllers/pipe.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@ func (c *ApiController) AddPipe() {
121121
}
122122

123123
pipe.Owner = "admin"
124+
if pipe.Store == "" {
125+
pipe.Store = "store-built-in"
126+
}
124127
success, err := object.AddPipe(&pipe)
125128
if err != nil {
126129
c.ResponseError(err.Error())

0 commit comments

Comments
 (0)