cohere

package
v0.5.2 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: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConvertToChatOpenai

func ConvertToChatOpenai(provider base.ProviderInterface, response *ChatResponse, request *types.ChatCompletionRequest) (openaiResponse *types.ChatCompletionResponse, errWithCode *types.OpenAIErrorWithStatusCode)

Types

type ChatCompletionMessage

type ChatCompletionMessage struct {
	types.ChatCompletionMessage
	ToolPlan string `json:"tool_plan,omitempty"`
}

func (*ChatCompletionMessage) ToChatCompletionMessage

func (cc *ChatCompletionMessage) ToChatCompletionMessage() *types.ChatCompletionMessage

type ChatEventDelta

type ChatEventDelta struct {
	Message      *ChatEventDeltaMessage `json:"message,omitempty"`
	Usage        *Usage                 `json:"usage,omitempty"`
	FinishReason string                 `json:"finish_reason,omitempty"`
}

type ChatEventDeltaMessage

type ChatEventDeltaMessage struct {
	Role      string                         `json:"role,omitempty"`
	Content   MessageContent                 `json:"content,omitempty"`
	ToolCalls *types.ChatCompletionToolCalls `json:"tool_calls,omitempty"`
	ToolPlan  string                         `json:"tool_plan,omitempty"`
}

func (*ChatEventDeltaMessage) ToString

func (m *ChatEventDeltaMessage) ToString() string

type ChatResponse

type ChatResponse struct {
	Id           string                 `json:"id"`
	FinishReason string                 `json:"finish_reason"`
	Prompt       *string                `json:"prompt,omitempty"`
	Message      *ChatCompletionMessage `json:"message,omitempty"`
	Usage        *Usage                 `json:"usage,omitempty"`
	Logprobs     any                    `json:"logprobs,omitempty"`
}

type ChatStreamResponse

type ChatStreamResponse struct {
	Id    string          `json:"id,omitempty"`
	Index int             `json:"index,omitempty"`
	Delta *ChatEventDelta `json:"delta,omitempty" url:"delta,omitempty"`
	Type  string          `json:"type,omitempty"`
}

type CohereError

type CohereError struct {
	Message string `json:"message,omitempty"`
}

type CohereProvider

type CohereProvider struct {
	base.BaseProvider
}

func (*CohereProvider) ConvertToRerank

func (*CohereProvider) CreateRerank

func (*CohereProvider) GetFullRequestURL

func (p *CohereProvider) GetFullRequestURL(requestURL string) string

func (*CohereProvider) GetModelList

func (p *CohereProvider) GetModelList() ([]string, error)

func (*CohereProvider) GetRequestHeaders

func (p *CohereProvider) GetRequestHeaders() (headers map[string]string)

获取请求头

type CohereProviderFactory

type CohereProviderFactory struct{}

func (CohereProviderFactory) Create

创建 CohereProvider

type CohereStreamHandler

type CohereStreamHandler struct {
	Usage   *types.Usage
	Request *types.ChatCompletionRequest
	// contains filtered or unexported fields
}

func (*CohereStreamHandler) HandlerStream

func (h *CohereStreamHandler) HandlerStream(rawLine *[]byte, dataChan chan string, errChan chan error)

转换为OpenAI聊天流式请求体

type MessageContent

type MessageContent struct {
	Text string `json:"text,omitempty"`
	Type string `json:"type,omitempty"`
}

type ModelDetails

type ModelDetails struct {
	Name      string   `json:"name"`
	Endpoints []string `json:"endpoints"`
}

type ModelListResponse

type ModelListResponse struct {
	Models []ModelDetails `json:"models"`
}

type RerankDocumentsItemText

type RerankDocumentsItemText struct {
	Text string `json:"text"`
}

type RerankRequest

type RerankRequest struct {
	Model           string   `json:"model,omitempty"`
	Query           string   `json:"query" url:"query"`
	Documents       []string `json:"documents,omitempty"`
	TopN            int      `json:"top_n,omitempty"`
	RankFields      []string `json:"rank_fields,omitempty"`
	ReturnDocuments bool     `json:"return_documents,omitempty"`
	MaxChunksPerDoc *int     `json:"max_chunks_per_doc,omitempty"`
}

type RerankRequestDocumentsItem

type RerankRequestDocumentsItem struct {
	String                         string
	RerankRequestDocumentsItemText *RerankDocumentsItemText
}

type RerankResponse

type RerankResponse struct {
	Id      *string                      `json:"id,omitempty"`
	Results []*RerankResponseResultsItem `json:"results,omitempty"`
	Meta    *Usage                       `json:"meta,omitempty"`
}

type RerankResponseResultsItem

type RerankResponseResultsItem struct {
	Document       *RerankDocumentsItemText `json:"document,omitempty"`
	Index          int                      `json:"index"`
	RelevanceScore float64                  `json:"relevance_score"`
}

type Usage

type Usage struct {
	BilledUnits *UsageBilledUnits `json:"billed_units,omitempty"`
}

type UsageBilledUnits

type UsageBilledUnits struct {
	InputTokens     int `json:"input_tokens,omitempty"`
	OutputTokens    int `json:"output_tokens,omitempty"`
	SearchUnits     int `json:"search_units,omitempty"`
	Classifications int `json:"classifications,omitempty"`
}

type V2ChatRequest

type V2ChatRequest struct {
	Model       string                        `json:"model"`
	Messages    []types.ChatCompletionMessage `json:"messages,omitempty"`
	Tools       []*types.ChatCompletionTool   `json:"tools,omitempty"`
	StrictTools *bool                         `json:"strict_tools,omitempty"`

	ResponseFormat   *types.ChatCompletionResponseFormat `json:"response_format,omitempty"`
	MaxTokens        *int                                `json:"max_tokens,omitempty"`
	StopSequences    any                                 `json:"stop_sequences,omitempty"`
	Temperature      *float64                            `json:"temperature,omitempty"`
	Seed             *int                                `json:"seed,omitempty"`
	FrequencyPenalty *float64                            `json:"frequency_penalty,omitempty"`
	PresencePenalty  *float64                            `json:"presence_penalty,omitempty"`
	K                *float64                            `json:"k,omitempty"`
	P                *float64                            `json:"p,omitempty"`
	ReturnPrompt     *bool                               `json:"return_prompt,omitempty"`
	Logprobs         *bool                               `json:"logprobs,omitempty"`
	ToolChoice       *string                             `json:"tool_choice,omitempty"`
	Stream           bool                                `json:"stream"`
}

Jump to

Keyboard shortcuts

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