requester

package
v0.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 14, 2026 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var HTTPClient *http.Client
View Source
var StreamClosed = []byte("stream_closed")

Functions

func DecodeResponse

func DecodeResponse(body io.Reader, v any) error

func DecodeString

func DecodeString(body io.Reader, output *string) error

func GetJsonHeaders

func GetJsonHeaders() map[string]string

func GetWSClient

func GetWSClient(proxyAddr string) *websocket.Dialer

func HandleErrorResp

func HandleErrorResp(resp *http.Response, toOpenAIError HttpErrorHandler, isPrefix bool) *types.OpenAIErrorWithStatusCode

处理错误响应

func InitHttpClient

func InitHttpClient()

func RequestNoTrimStream

func RequestNoTrimStream[T streamable](requester *HTTPRequester, resp *http.Response, handlerPrefix HandlerPrefix[T]) (*streamReader[T], *types.OpenAIErrorWithStatusCode)

func RequestStream

func RequestStream[T streamable](requester *HTTPRequester, resp *http.Response, handlerPrefix HandlerPrefix[T]) (*streamReader[T], *types.OpenAIErrorWithStatusCode)

获取流式响应

func SendWSJsonRequest

func SendWSJsonRequest[T streamable](conn *websocket.Conn, data any, handlerPrefix HandlerPrefix[T]) (*wsReader[T], *types.OpenAIErrorWithStatusCode)

func SetEventStreamHeaders

func SetEventStreamHeaders(c *gin.Context)

Types

type DefaultFormBuilder

type DefaultFormBuilder struct {
	// contains filtered or unexported fields
}

func NewFormBuilder

func NewFormBuilder(body io.Writer) *DefaultFormBuilder

func (*DefaultFormBuilder) Close

func (fb *DefaultFormBuilder) Close() error

func (*DefaultFormBuilder) CreateFormFile

func (fb *DefaultFormBuilder) CreateFormFile(fieldname string, fileHeader *multipart.FileHeader) error

func (*DefaultFormBuilder) CreateFormFileReader

func (fb *DefaultFormBuilder) CreateFormFileReader(fieldname string, r io.Reader, filename string) error

func (*DefaultFormBuilder) FormDataContentType

func (fb *DefaultFormBuilder) FormDataContentType() string

func (*DefaultFormBuilder) WriteField

func (fb *DefaultFormBuilder) WriteField(fieldname, value string) error

type FormBuilder

type FormBuilder interface {
	CreateFormFile(fieldname string, fileHeader *multipart.FileHeader) error
	CreateFormFileReader(fieldname string, r io.Reader, filename string) error
	WriteField(fieldname, value string) error
	Close() error
	FormDataContentType() string
}

type HTTPRequester

type HTTPRequester struct {
	// requestBuilder    utils.RequestBuilder
	CreateFormBuilder func(io.Writer) FormBuilder
	ErrorHandler      HttpErrorHandler

	Context  context.Context
	IsOpenAI bool
	// contains filtered or unexported fields
}

func NewHTTPRequester

func NewHTTPRequester(proxyAddr string, errorHandler HttpErrorHandler) *HTTPRequester

NewHTTPRequester 创建一个新的 HTTPRequester 实例。 proxyAddr: 是代理服务器的地址。 errorHandler: 是一个错误处理函数,它接收一个 *http.Response 参数并返回一个 *types.OpenAIErrorResponse。 如果 errorHandler 为 nil,那么会使用一个默认的错误处理函数。

func (*HTTPRequester) IsFailureStatusCode

func (r *HTTPRequester) IsFailureStatusCode(resp *http.Response) bool

判断是否为失败状态码

func (*HTTPRequester) NewRequest

func (r *HTTPRequester) NewRequest(method, url string, setters ...requestOption) (*http.Request, error)

创建请求

func (*HTTPRequester) SendRequest

func (r *HTTPRequester) SendRequest(req *http.Request, response any, outputResp bool) (*http.Response, *types.OpenAIErrorWithStatusCode)

发送请求

func (*HTTPRequester) SendRequestRaw

func (r *HTTPRequester) SendRequestRaw(req *http.Request) (*http.Response, *types.OpenAIErrorWithStatusCode)

发送请求 RAW

func (*HTTPRequester) WithBody

func (r *HTTPRequester) WithBody(body any) requestOption

设置请求体

func (*HTTPRequester) WithContentType

func (r *HTTPRequester) WithContentType(contentType string) requestOption

设置Content-Type

func (*HTTPRequester) WithHeader

func (r *HTTPRequester) WithHeader(header map[string]string) requestOption

设置请求头

type HandlerPrefix

type HandlerPrefix[T streamable] func(rawLine *[]byte, dataChan chan T, errChan chan error)

type HttpErrorHandler

type HttpErrorHandler func(*http.Response) *types.OpenAIError

type MessageHandler

type MessageHandler func(source MessageSource, messageType int, message []byte) (bool, *types.UsageEvent, []byte, error)

type MessageSource

type MessageSource int
const (
	UserMessage MessageSource = iota
	SupplierMessage
)

type StreamReaderInterface

type StreamReaderInterface[T streamable] interface {
	Recv() (<-chan T, <-chan error)
	Close()
}

type Stringer

type Stringer interface {
	GetString() *string
}

type UsageHandler

type UsageHandler func(usage *types.UsageEvent) error

type WSProxy

type WSProxy struct {
	// contains filtered or unexported fields
}

func NewWSProxy

func NewWSProxy(userConn, supplierConn *websocket.Conn, timeout time.Duration, handler MessageHandler, usageHandler UsageHandler) *WSProxy

func (*WSProxy) Close

func (p *WSProxy) Close()

func (*WSProxy) Start

func (p *WSProxy) Start()

func (*WSProxy) SupplierClosed

func (p *WSProxy) SupplierClosed() <-chan struct{}

func (*WSProxy) UserClosed

func (p *WSProxy) UserClosed() <-chan struct{}

func (*WSProxy) Wait

func (p *WSProxy) Wait()

type WSRequester

type WSRequester struct {
	WSClient *websocket.Dialer
}

func NewWSRequester

func NewWSRequester(proxyAddr string) *WSRequester

func (*WSRequester) NewRequest

func (w *WSRequester) NewRequest(url string, header http.Header) (*websocket.Conn, error)

func (*WSRequester) WithHeader

func (w *WSRequester) WithHeader(headers map[string]string) http.Header

设置请求头

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL