Compare commits
3 Commits
d9a42842b2
...
3c4c2b5660
| Author | SHA1 | Date | |
|---|---|---|---|
|
3c4c2b5660
|
|||
|
a3fff93f2e
|
|||
|
c90a18d380
|
4
main.go
4
main.go
@@ -147,8 +147,8 @@ func main() {
|
||||
if db.Create(&record).Error != nil {
|
||||
log.Println("Error to save record:", record)
|
||||
}
|
||||
if record.Status != 200 && record.Response != "context canceled" {
|
||||
errMessage := fmt.Sprintf("IP: %s request all upstreams error %d with %s", record.IP, record.Status, record.Response)
|
||||
if record.Status != 200 {
|
||||
errMessage := fmt.Sprintf("IP: %s request %s error %d with %s", record.IP, record.Model, record.Status, record.Response)
|
||||
go sendFeishuMessage(errMessage)
|
||||
go sendMatrixMessage(errMessage)
|
||||
}
|
||||
|
||||
11
process.go
11
process.go
@@ -55,6 +55,10 @@ func processRequest(c *gin.Context, upstream *OPENAI_UPSTREAM, record *Record, s
|
||||
// record chat message from user
|
||||
record.Body = string(inBody)
|
||||
requestBody, requestBodyOK := ParseRequestBody(inBody)
|
||||
// record if parse success
|
||||
if requestBodyOK == nil {
|
||||
record.Model = requestBody.Model
|
||||
}
|
||||
|
||||
// set timeout, default is 5 second
|
||||
timeout := 5 * time.Second
|
||||
@@ -72,6 +76,9 @@ func processRequest(c *gin.Context, upstream *OPENAI_UPSTREAM, record *Record, s
|
||||
if !haveResponse {
|
||||
log.Println("Timeout upstream", upstream.Endpoint)
|
||||
errCtx = errors.New("timeout")
|
||||
if shouldResponse {
|
||||
c.AbortWithError(502, errCtx)
|
||||
}
|
||||
cancel()
|
||||
}
|
||||
}()
|
||||
@@ -95,7 +102,6 @@ func processRequest(c *gin.Context, upstream *OPENAI_UPSTREAM, record *Record, s
|
||||
var contentType string
|
||||
proxy.ModifyResponse = func(r *http.Response) error {
|
||||
haveResponse = true
|
||||
log.Println("haveResponse set to true")
|
||||
record.Status = r.StatusCode
|
||||
if !shouldResponse && r.StatusCode != 200 {
|
||||
log.Println("upstream return not 200 and should not response", r.StatusCode)
|
||||
@@ -124,10 +130,9 @@ func processRequest(c *gin.Context, upstream *OPENAI_UPSTREAM, record *Record, s
|
||||
return nil
|
||||
}
|
||||
proxy.ErrorHandler = func(w http.ResponseWriter, r *http.Request, err error) {
|
||||
haveResponse = true
|
||||
log.Println("Error", err, upstream.SK, upstream.Endpoint)
|
||||
|
||||
log.Println("debug", r)
|
||||
|
||||
errCtx = err
|
||||
|
||||
// abort to error handle
|
||||
|
||||
Reference in New Issue
Block a user