mirror of
https://github.com/router-for-me/CLIProxyAPIPlus.git
synced 2026-03-30 01:06:39 +00:00
fix(gemini): handle "[DONE]" chunk, trim "data:" prefix, and remove session_id from requests
- Adjusted stream handling to skip "[DONE]" chunks. - Ensured "data:" prefix is trimmed for non-prefixed input in translation. - Removed `session_id` from request bodies before processing.
This commit is contained in:
@@ -1,21 +1,34 @@
|
||||
// Package translator provides types and functions for converting chat requests and responses between different schemas.
|
||||
package translator
|
||||
|
||||
import "context"
|
||||
|
||||
// RequestTransform converts a request payload from one schema to another.
|
||||
// RequestTransform is a function type that converts a request payload from a source schema to a target schema.
|
||||
// It takes the model name, the raw JSON payload of the request, and a boolean indicating if the request is for a streaming response.
|
||||
// It returns the converted request payload as a byte slice.
|
||||
type RequestTransform func(model string, rawJSON []byte, stream bool) []byte
|
||||
|
||||
// ResponseStreamTransform converts streaming responses between schemas.
|
||||
// ResponseStreamTransform is a function type that converts a streaming response from a source schema to a target schema.
|
||||
// It takes a context, the model name, the raw JSON of the original and converted requests, the raw JSON of the current response chunk, and an optional parameter.
|
||||
// It returns a slice of strings, where each string is a chunk of the converted streaming response.
|
||||
type ResponseStreamTransform func(ctx context.Context, model string, originalRequestRawJSON, requestRawJSON, rawJSON []byte, param *any) []string
|
||||
|
||||
// ResponseNonStreamTransform converts non-stream responses between schemas.
|
||||
// ResponseNonStreamTransform is a function type that converts a non-streaming response from a source schema to a target schema.
|
||||
// It takes a context, the model name, the raw JSON of the original and converted requests, the raw JSON of the response, and an optional parameter.
|
||||
// It returns the converted response as a single string.
|
||||
type ResponseNonStreamTransform func(ctx context.Context, model string, originalRequestRawJSON, requestRawJSON, rawJSON []byte, param *any) string
|
||||
|
||||
// ResponseTokenCountTransform is a function type that transforms a token count from a source format to a target format.
|
||||
// It takes a context and the token count as an int64, and returns the transformed token count as a string.
|
||||
type ResponseTokenCountTransform func(ctx context.Context, count int64) string
|
||||
|
||||
// ResponseTransform groups streaming and non-streaming transforms.
|
||||
// ResponseTransform is a struct that groups together the functions for transforming streaming and non-streaming responses,
|
||||
// as well as token counts.
|
||||
type ResponseTransform struct {
|
||||
Stream ResponseStreamTransform
|
||||
NonStream ResponseNonStreamTransform
|
||||
// Stream is the function for transforming streaming responses.
|
||||
Stream ResponseStreamTransform
|
||||
// NonStream is the function for transforming non-streaming responses.
|
||||
NonStream ResponseNonStreamTransform
|
||||
// TokenCount is the function for transforming token counts.
|
||||
TokenCount ResponseTokenCountTransform
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user