Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | import { generateInvalidProviderResponseError } from '@api/utils/ai-provider'; import type { AIProviderFunctionConfig, ResponseTransformFunction, } from '@shared/types/ai-providers/config'; import type { CompletionRequestBody, CompletionResponseBody, } from '@shared/types/api/routes/completions-api'; import { AIProvider } from '@shared/types/constants'; import { workersAIErrorResponseTransform } from './utils'; export const workersAICompleteConfig: AIProviderFunctionConfig = { prompt: { param: 'prompt', transform: (saRequestBody: CompletionRequestBody) => `\n\nHuman: ${saRequestBody.prompt}\n\nAssistant:`, required: true, }, model: { param: 'model', required: true, }, stream: { param: 'stream', default: false, }, raw: { param: 'raw', }, max_tokens: { param: 'max_tokens', }, temperature: { param: 'temperature', }, top_p: { param: 'top_p', }, top_k: { param: 'top_k', }, frequency_penalty: { param: 'frequency_penalty', }, presence_penalty: { param: 'presence_penalty', }, }; interface WorkersAICompleteResponse { result: { response: string; }; success: boolean; errors: string[]; messages: string[]; model: string; } export const workersAICompleteResponseTransform: ResponseTransformFunction = ( aiProviderResponseBody, aiProviderResponseStatus, _responseHeaders, _strictOpenAiCompliance, _raRequestData, ) => { if (aiProviderResponseStatus !== 200) { return workersAIErrorResponseTransform(aiProviderResponseBody); } if ('result' in aiProviderResponseBody) { const response = aiProviderResponseBody as unknown as WorkersAICompleteResponse; return { id: Date.now().toString(), object: 'text_completion', created: Math.floor(Date.now() / 1000), model: response.model, provider: AIProvider.WORKERS_AI, choices: [ { text: response.result.response, index: 0, logprobs: null, finish_reason: 'stop', }, ], usage: { prompt_tokens: -1, completion_tokens: -1, total_tokens: -1, }, } as CompletionResponseBody; } return generateInvalidProviderResponseError( aiProviderResponseBody as Record<string, unknown>, AIProvider.WORKERS_AI, ); }; |