Documentation
¶
Index ¶
- Variables
- func DecodeResponse(body io.Reader, v any) error
- func DecodeString(body io.Reader, output *string) error
- func GetJsonHeaders() map[string]string
- func GetWSClient(proxyAddr string) *websocket.Dialer
- func HandleErrorResp(resp *http.Response, toOpenAIError HttpErrorHandler, isPrefix bool) *types.OpenAIErrorWithStatusCode
- func InitHttpClient()
- func RequestNoTrimStream[T streamable](requester *HTTPRequester, resp *http.Response, handlerPrefix HandlerPrefix[T]) (*streamReader[T], *types.OpenAIErrorWithStatusCode)
- func RequestStream[T streamable](requester *HTTPRequester, resp *http.Response, handlerPrefix HandlerPrefix[T]) (*streamReader[T], *types.OpenAIErrorWithStatusCode)
- func SendWSJsonRequest[T streamable](conn *websocket.Conn, data any, handlerPrefix HandlerPrefix[T]) (*wsReader[T], *types.OpenAIErrorWithStatusCode)
- func SetEventStreamHeaders(c *gin.Context)
- type DefaultFormBuilder
- func (fb *DefaultFormBuilder) Close() error
- func (fb *DefaultFormBuilder) CreateFormFile(fieldname string, fileHeader *multipart.FileHeader) error
- func (fb *DefaultFormBuilder) CreateFormFileReader(fieldname string, r io.Reader, filename string) error
- func (fb *DefaultFormBuilder) FormDataContentType() string
- func (fb *DefaultFormBuilder) WriteField(fieldname, value string) error
- type FormBuilder
- type HTTPRequester
- func (r *HTTPRequester) IsFailureStatusCode(resp *http.Response) bool
- func (r *HTTPRequester) NewRequest(method, url string, setters ...requestOption) (*http.Request, error)
- func (r *HTTPRequester) SendRequest(req *http.Request, response any, outputResp bool) (*http.Response, *types.OpenAIErrorWithStatusCode)
- func (r *HTTPRequester) SendRequestRaw(req *http.Request) (*http.Response, *types.OpenAIErrorWithStatusCode)
- func (r *HTTPRequester) WithBody(body any) requestOption
- func (r *HTTPRequester) WithContentType(contentType string) requestOption
- func (r *HTTPRequester) WithHeader(header map[string]string) requestOption
- type HandlerPrefix
- type HttpErrorHandler
- type MessageHandler
- type MessageSource
- type StreamReaderInterface
- type Stringer
- type UsageHandler
- type WSProxy
- type WSRequester
Constants ¶
This section is empty.
Variables ¶
View Source
var HTTPClient *http.Client
View Source
var StreamClosed = []byte("stream_closed")
Functions ¶
func GetJsonHeaders ¶
func GetWSClient ¶
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 ¶
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 (*DefaultFormBuilder) FormDataContentType ¶
func (fb *DefaultFormBuilder) FormDataContentType() string
func (*DefaultFormBuilder) WriteField ¶
func (fb *DefaultFormBuilder) WriteField(fieldname, value string) error
type FormBuilder ¶
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) 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 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 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) SupplierClosed ¶
func (p *WSProxy) SupplierClosed() <-chan struct{}
func (*WSProxy) UserClosed ¶
func (p *WSProxy) UserClosed() <-chan struct{}
type WSRequester ¶
func NewWSRequester ¶
func NewWSRequester(proxyAddr string) *WSRequester
func (*WSRequester) NewRequest ¶
func (*WSRequester) WithHeader ¶
func (w *WSRequester) WithHeader(headers map[string]string) http.Header
设置请求头
Click to show internal directories.
Click to hide internal directories.