1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package compapi
- import (
- "errors"
- "fmt"
- "net/http"
- "wechat-api/internal/types"
- "github.com/openai/openai-go"
- "github.com/openai/openai-go/option"
- )
- type StdClient struct {
- *Client
- }
- func (me *StdClient) CallbackPrepare(params any) ([]byte, error) {
- return AnyToBytes(params)
- }
- func (me *StdClient) DoRequestBS(req []byte,
- customResp any, isSteam bool) (*openai.ChatCompletion, error) {
- opts := []option.RequestOption{}
- if len(req) > 0 {
- opts = append(opts, option.WithRequestBody("application/json", req))
- } else {
- return nil, errors.New("request body empty")
- }
- if customResp != nil {
- opts = append(opts, option.WithResponseBodyInto(customResp))
- }
- if isSteam {
- opts = append(opts, option.WithJSONSet("stream", true))
- }
- emptyParams := openai.ChatCompletionNewParams{}
- return me.OAC.Chat.Completions.New(me.ctx, emptyParams, opts...)
- }
- func (me *StdClient) DoRequest(req *types.CompApiReq) (*types.CompOpenApiResp, error) {
- //fmt.Println(typekit.PrettyPrint(req))
- jsonBytes, err := req.ToBytes()
- if err != nil {
- return nil, err
- }
- customResp := types.CompOpenApiResp{}
- if _, err = me.DoRequestBS(jsonBytes, &customResp, req.Stream); err != nil {
- return nil, err
- }
- if customResp.FgtErrCode != nil && customResp.FgtErrStatusTxt != nil { //针对fastgpt出错但New()不返回错误的情况
- return nil, fmt.Errorf("%s(%d)", *customResp.FgtErrStatusTxt, *customResp.FgtErrCode)
- }
- return &customResp, nil
- }
- func (me *StdClient) DoRequestStream(req *types.CompApiReq) (*types.CompOpenApiResp, error) {
- var (
- //raw []byte
- raw *http.Response
- jsonBytes []byte
- err error
- )
- jsonBytes, err = req.ToBytes()
- if err != nil {
- return nil, err
- }
- if _, err = me.DoRequestBS(jsonBytes, &raw, req.Stream); err != nil {
- return nil, err
- }
- streamOut(me.ctx, raw)
- return nil, nil
- }
- func (me *StdClient) BuildRequest(req *types.CompApiReq) error {
- return nil
- }
|