| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package dto
- import (
- "strings"
- "github.com/QuantumNous/new-api/types"
- "github.com/gin-gonic/gin"
- )
- type EmbeddingOptions struct {
- Seed int `json:"seed,omitempty"`
- Temperature *float64 `json:"temperature,omitempty"`
- TopK int `json:"top_k,omitempty"`
- TopP *float64 `json:"top_p,omitempty"`
- FrequencyPenalty *float64 `json:"frequency_penalty,omitempty"`
- PresencePenalty *float64 `json:"presence_penalty,omitempty"`
- NumPredict int `json:"num_predict,omitempty"`
- NumCtx int `json:"num_ctx,omitempty"`
- }
- type EmbeddingRequest struct {
- Model string `json:"model"`
- Input any `json:"input"`
- EncodingFormat string `json:"encoding_format,omitempty"`
- Dimensions int `json:"dimensions,omitempty"`
- User string `json:"user,omitempty"`
- Seed float64 `json:"seed,omitempty"`
- Temperature *float64 `json:"temperature,omitempty"`
- TopP float64 `json:"top_p,omitempty"`
- FrequencyPenalty float64 `json:"frequency_penalty,omitempty"`
- PresencePenalty float64 `json:"presence_penalty,omitempty"`
- }
- func (r *EmbeddingRequest) GetTokenCountMeta() *types.TokenCountMeta {
- var texts = make([]string, 0)
- inputs := r.ParseInput()
- for _, input := range inputs {
- texts = append(texts, input)
- }
- return &types.TokenCountMeta{
- CombineText: strings.Join(texts, "\n"),
- }
- }
- func (r *EmbeddingRequest) IsStream(c *gin.Context) bool {
- return false
- }
- func (r *EmbeddingRequest) SetModelName(modelName string) {
- if modelName != "" {
- r.Model = modelName
- }
- }
- func (r *EmbeddingRequest) ParseInput() []string {
- if r.Input == nil {
- return make([]string, 0)
- }
- var input []string
- switch r.Input.(type) {
- case string:
- input = []string{r.Input.(string)}
- case []any:
- input = make([]string, 0, len(r.Input.([]any)))
- for _, item := range r.Input.([]any) {
- if str, ok := item.(string); ok {
- input = append(input, str)
- }
- }
- }
- return input
- }
- type EmbeddingResponseItem struct {
- Object string `json:"object"`
- Index int `json:"index"`
- Embedding []float64 `json:"embedding"`
- }
- type EmbeddingResponse struct {
- Object string `json:"object"`
- Data []EmbeddingResponseItem `json:"data"`
- Model string `json:"model"`
- Usage `json:"usage"`
- }
|