mirror of
https://github.com/zhengkai/orca.git
synced 2026-02-10 05:32:25 +08:00
up
This commit is contained in:
@@ -2,22 +2,22 @@ package core
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"project/config"
|
||||
"project/pb"
|
||||
"project/zj"
|
||||
"project/util"
|
||||
"time"
|
||||
)
|
||||
|
||||
func fetchRemote(r *pb.Req) (ab []byte, err error) {
|
||||
func (pr *row) fetchRemote() (ab []byte, ok bool, err error) {
|
||||
|
||||
u, err := url.Parse(config.RemoteAPI)
|
||||
if err != nil {
|
||||
zj.W(`url fail`, config.RemoteAPI, err)
|
||||
return
|
||||
}
|
||||
r := pr.req
|
||||
var b bytes.Buffer
|
||||
pr.failLog = &b
|
||||
|
||||
u, _ := url.Parse(config.OpenAIBase)
|
||||
u.Path = r.Path
|
||||
|
||||
req, err := http.NewRequest(r.Method, u.String(), bytes.NewReader(r.Body))
|
||||
@@ -25,6 +25,17 @@ func fetchRemote(r *pb.Req) (ab []byte, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
b.WriteString(pr.hr.URL.String())
|
||||
b.WriteString("\n\nreq header:\n\n")
|
||||
for k, v := range pr.hr.Header {
|
||||
fmt.Fprintf(&b, "\t%s: %v\n", k, v)
|
||||
}
|
||||
b.WriteString("\n")
|
||||
fmt.Fprintf(&b, "req body: %d\n\n", len(r.Body))
|
||||
if len(r.Body) > 0 {
|
||||
fmt.Fprintf(&b, "%s\n\n", r.Body)
|
||||
}
|
||||
|
||||
req.Header.Set(`Content-Type`, `application/json`)
|
||||
req.Header.Set(`Authorization`, `Bearer `+config.OpenAIKey)
|
||||
|
||||
@@ -33,14 +44,35 @@ func fetchRemote(r *pb.Req) (ab []byte, err error) {
|
||||
}
|
||||
rsp, err := client.Do(req)
|
||||
if err != nil {
|
||||
fmt.Fprintf(&b, "client.Do fail: %s\n", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
for k, v := range rsp.Header {
|
||||
zj.J(k, v)
|
||||
if rsp.StatusCode >= 200 || rsp.StatusCode < 300 {
|
||||
// ok = true
|
||||
} else {
|
||||
err = fmt.Errorf(`status code fail: %d`, rsp.StatusCode)
|
||||
b.WriteString(err.Error())
|
||||
}
|
||||
|
||||
b.WriteString("req header:\n\n")
|
||||
for k, v := range rsp.Header {
|
||||
fmt.Fprintf(&b, "\t%s: %v\n", k, v)
|
||||
}
|
||||
b.WriteString("\n")
|
||||
|
||||
ab, err = io.ReadAll(rsp.Body)
|
||||
if err != nil {
|
||||
fmt.Fprintf(&b, "rsp body: %d %v\n\n", len(ab), err)
|
||||
b.Write(ab)
|
||||
}
|
||||
|
||||
rsp.Body.Close()
|
||||
return
|
||||
}
|
||||
|
||||
func writeFailLog(hash [16]byte, ab []byte) {
|
||||
date := time.Now().Format(`0102-150405`)
|
||||
file := fmt.Sprintf(`fail/%s-%x.txt`, date, hash)
|
||||
util.WriteFile(file, ab)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user