日志优化,添加状态接口
continuous-integration/drone/push Build is passing Details

main
lvxiu_ext 3 years ago
parent 48cf557a12
commit 4b54bde677

1
.gitignore vendored

@ -1 +1,2 @@
gin.log gin.log
/logs

@ -207,6 +207,7 @@ func embeddings(c *gin.Context) {
proxy := httputil.NewSingleHostReverseProxy(remote) proxy := httputil.NewSingleHostReverseProxy(remote)
newReqBody, err := json.Marshal(chatRequest) newReqBody, err := json.Marshal(chatRequest)
if err != nil { if err != nil {
log.Printf("http request err: %v", err)
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": err.Error()}) c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return return
} }
@ -239,6 +240,7 @@ func embeddings(c *gin.Context) {
var chatResponse ChatResponse var chatResponse ChatResponse
body, err := ioutil.ReadAll(resp.Body) body, err := ioutil.ReadAll(resp.Body)
if err != nil { if err != nil {
log.Printf("读取返回数据出错: %v", err)
return err return err
} }
json.Unmarshal(body, &chatResponse) json.Unmarshal(body, &chatResponse)
@ -287,6 +289,7 @@ func completions(c *gin.Context) {
proxy := httputil.NewSingleHostReverseProxy(remote) proxy := httputil.NewSingleHostReverseProxy(remote)
newReqBody, err := json.Marshal(chatRequest) newReqBody, err := json.Marshal(chatRequest)
if err != nil { if err != nil {
log.Printf("http request err: %v", err)
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": err.Error()}) c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return return
} }
@ -311,7 +314,10 @@ func completions(c *gin.Context) {
req.Body = ioutil.NopCloser(bytes.NewReader(newReqBody)) req.Body = ioutil.NopCloser(bytes.NewReader(newReqBody))
} }
sss, err := json.Marshal(chatRequest) sss, err := json.Marshal(chatRequest)
log.Printf("开始处理返回逻辑 %d", string(sss)) if err != nil {
log.Printf("chatRequest 转化出错 %v", err)
}
log.Printf("开始处理返回逻辑: %v", string(sss))
if chatRequest.Stream { if chatRequest.Stream {
// 流式回应,处理 // 流式回应,处理
proxy.ModifyResponse = func(resp *http.Response) error { proxy.ModifyResponse = func(resp *http.Response) error {
@ -329,7 +335,7 @@ func completions(c *gin.Context) {
if err == io.EOF { if err == io.EOF {
break break
} }
log.Printf("httpError1 %v", err.Error()) log.Printf("流式回应,处理 err %v:", err.Error())
break break
//return err //return err
} }
@ -338,7 +344,6 @@ func completions(c *gin.Context) {
var trimStr = strings.Trim(string(chunk), "data: ") var trimStr = strings.Trim(string(chunk), "data: ")
if trimStr != "\n" { if trimStr != "\n" {
json.Unmarshal([]byte(trimStr), &chatResponse) json.Unmarshal([]byte(trimStr), &chatResponse)
//log.Printf("trimStr:" + trimStr)
if chatResponse.Choices != nil { if chatResponse.Choices != nil {
reqContent += chatResponse.Choices[0].Delta.Content reqContent += chatResponse.Choices[0].Delta.Content
chatRequestId = chatResponse.Id chatRequestId = chatResponse.Id
@ -347,7 +352,7 @@ func completions(c *gin.Context) {
// 写回数据 // 写回数据
_, err = c.Writer.Write([]byte(string(chunk) + "\n")) _, err = c.Writer.Write([]byte(string(chunk) + "\n"))
if err != nil { if err != nil {
log.Printf("httpError2 %v", err.Error()) log.Printf("写回数据 err: %v", err.Error())
return err return err
} }
c.Writer.(http.Flusher).Flush() c.Writer.(http.Flusher).Flush()
@ -372,6 +377,7 @@ func completions(c *gin.Context) {
var chatResponse ChatResponse var chatResponse ChatResponse
body, err := ioutil.ReadAll(resp.Body) body, err := ioutil.ReadAll(resp.Body)
if err != nil { if err != nil {
log.Printf("非流式回应,处理 err: %v", err)
return err return err
} }
json.Unmarshal(body, &chatResponse) json.Unmarshal(body, &chatResponse)
@ -464,6 +470,7 @@ func checkKeyMid() gin.HandlerFunc {
log.Printf("key: %v", key) log.Printf("key: %v", key)
msg, err := checkKeyAndTimeCount(key) msg, err := checkKeyAndTimeCount(key)
if err != nil { if err != nil {
log.Printf("checkKeyMid err: %v", err)
c.AbortWithStatusJSON(msg, gin.H{"code": err.Error()}) c.AbortWithStatusJSON(msg, gin.H{"code": err.Error()})
} }
} }
@ -489,7 +496,7 @@ func main() {
r := gin.Default() r := gin.Default()
//r.GET("/dashboard/billing/credit_grants", checkKeyMid(), balance) r.GET("/dashboard/billing/credit_grants", checkKeyMid(), balance)
r.GET("/v1/models", handleGetModels) r.GET("/v1/models", handleGetModels)
r.OPTIONS("/v1/*path", handleOptions) r.OPTIONS("/v1/*path", handleOptions)
@ -557,5 +564,13 @@ func main() {
//r.Run("127.0.0.1:8080") //r.Run("127.0.0.1:8080")
//docker下使用 //docker下使用
// 定义一个GET请求测试接口
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong from api2gpt",
})
})
r.Run("0.0.0.0:8080") r.Run("0.0.0.0:8080")
} }

@ -123,6 +123,7 @@ func consumption(key string, model string, prompt_tokens int, completion_tokens
// 余额消费日志请求 // 余额消费日志请求
result, err := balanceConsumption(key, model, prompt_tokens, completion_tokens, total_tokens, msg_id) result, err := balanceConsumption(key, model, prompt_tokens, completion_tokens, total_tokens, msg_id)
if err != nil { if err != nil {
log.Printf("余额消费日志请求失败 %v", err)
return "", err return "", err
} }
log.Printf("扣费KEY: %s 扣费token数: %d 扣费结果 %s", key, total_tokens, result) log.Printf("扣费KEY: %s 扣费token数: %d 扣费结果 %s", key, total_tokens, result)

Loading…
Cancel
Save