123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- import "../base.api"
- type (
-
- //以下是API请求类型
- CompApiReq {
- CompCtlReq
- StdCompApiReq
- FastGptSpecReq
- }
- //FastGpt Completions请求信息
- FastGptApiReq {
- StdCompApiReq
- FastGptSpecReq
- }
- //标准Completions请求信息
- StdCompApiReq {
- //model,like 'gpt-4o'
- Model string `json:"model,optional"`
- //Message list
- Messages []StdCompMessage `json:"messages"`
- //Stream 是否流式输出
- Stream bool `json:"stream,default=false"`
- }
- //关于工作流配置的请求信息
- CompCtlReq {
- //EventType事件类型
- EventType string `json:"event_type,default=fastgpt"`
- //WorkId工作流ID
- WorkId string `json:"work_id"`
- //IsBatch 是同步还是异步,默认及取值false表明同步
- IsBatch bool `json:"is_batch,default=false"`
- //异步回调地址
- Callback string `json:"callback,optional"`
- }
- FastGptSpecReq {
- //ChatId
- ChatId string `json:"chat_id,optional"`
- //ResponseChatItemId
- ResponseChatItemId string `json:"response_chat_item_id,optional"`
- //Detail 详情开关
- Detail bool `json:"detail,default=false"`
- //Variables
- Variables map[string]string `json:"variables,optional"`
- }
-
- StdCompMessage {
- Role string `json:"role"`
- Content string `json:"content"`
- }
- //以下是API响应类型
- CompOpenApiResp {
- StdCompApiResp
- FastgptSpecResp
- }
- StdCompApiResp {
- // A unique identifier for the chat completion.
- ID string `json:"id"`
- // A list of chat completion choices. Can be more than one if `n` is greater
- // than 1.
- Choices []ChatCompletionChoice `json:"choices"`
- // The Unix timestamp (in seconds) of when the chat completion was created.
- Created int64 `json:"created"`
- // The model used for the chat completion.
- Model string `json:"model"`
- // The object type, which is always `chat.completion`.
- Object string `json:"object"`
- // The service tier used for processing the request.
- ServiceTier string `json:"service_tier,omitempty"`
- // This fingerprint represents the backend configuration that the model runs with.
- //
- // Can be used in conjunction with the `seed` request parameter to understand when
- // backend changes have been made that might impact determinism.
- SystemFingerprint string `json:"system_fingerprint"`
- // Usage statistics for the completion request.
- Usage CompletionUsage `json:"usage,omitempty"`
- }
- FastgptSpecResp {
- ResponseData []map[string]string `json:"responseData,omitempty"`
- NewVariables map[string]string `json:"newVariables,omitempty"`
- }
-
- ChatCompletionAudio {
- // Unique identifier for this audio response.
- ID string `json:"id"`
- //TODO
- }
- ChatCompletionMessage {
- // The contents of the message.
- Content string `json:"content"`
- //The contents of the reasoning message
- ReasoningContent string `json:"reasoning_content,omitempty"`
- // The refusal message generated by the model.
- Refusal string `json:"refusal"`
- // The role of the author of this message.
- Role string `json:"role"`
- // If the audio output modality is requested, this object contains data about the
- // audio response from the model.
- // [Learn more](https://platform.openai.com/docs/guides/audio).
- Audio ChatCompletionAudio `json:"audio,omitempty"`
- }
- ChatCompletionChoice {
- // The reason the model stopped generating tokens. This will be `stop` if the model
- // hit a natural stop point or a provided stop sequence, `length` if the maximum
- // number of tokens specified in the request was reached, `content_filter` if
- // content was omitted due to a flag from our content filters, `tool_calls` if the
- // model called a tool, or `function_call` (deprecated) if the model called a
- // function.
- FinishReason string `json:"finish_reason"`
- // The index of the choice in the list of choices.
- Index int64 `json:"index"`
- // A chat completion message generated by the model.
- Message ChatCompletionMessage `json:"message,omitempty"`
- // A chat completion message generated by the model stream mode.
- Delta ChatCompletionMessage `json:"delta,omitempty"`
- }
- CompletionUsageCompletionTokensDetails {
- // When using Predicted Outputs, the number of tokens in the prediction that
- // appeared in the completion.
- AcceptedPredictionTokens int64 `json:"accepted_prediction_tokens"`
- // Audio input tokens generated by the model.
- AudioTokens int64 `json:"audio_tokens"`
- // Tokens generated by the model for reasoning.
- ReasoningTokens int64 `json:"reasoning_tokens"`
- // When using Predicted Outputs, the number of tokens in the prediction that did
- // not appear in the completion. However, like reasoning tokens, these tokens are
- // still counted in the total completion tokens for purposes of billing, output,
- // and context window limits.
- RejectedPredictionTokens int64 `json:"rejected_prediction_tokens"`
- }
- CompletionUsagePromptTokensDetails {
- // Audio input tokens present in the prompt.
- AudioTokens int64 `json:"audio_tokens"`
- // Cached tokens present in the prompt.
- CachedTokens int64 `json:"cached_tokens"`
- }
- CompletionUsage {
- // Number of tokens in the generated completion.
- CompletionTokens int64 `json:"completion_tokens,required"`
- // Number of tokens in the prompt.
- PromptTokens int64 `json:"prompt_tokens,required"`
- // Total number of tokens used in the request (prompt + completion).
- TotalTokens int64 `json:"total_tokens,required"`
- // Breakdown of tokens used in a completion.
- CompletionTokensDetails CompletionUsageCompletionTokensDetails `json:"completion_tokens_details"`
- // Breakdown of tokens used in the prompt.
- PromptTokensDetails CompletionUsagePromptTokensDetails `json:"prompt_tokens_details"`
- }
- )
- @server(
- group: chat
- prefix: /v1
- )
- service Wechat {
-
- @handler getAuth
- get /chat/getauth () returns (BaseMsgResp)
- }
- @server(
-
- group: chat
- prefix: /v1
- //jwt: Auth
- middleware: OpenAuthority
- )
- service Wechat {
-
- @handler chatCompletions
- post /chat/completions (CompApiReq) returns (CompOpenApiResp)
- }
|