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 | 1x 1x 1x 1x 1x 1x 9x 9x 9x 9x 2x 9x 7x 7x 7x 7x 7x 7x 7x 2x 2x 2x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 9x | import { RouterError } from '@api/errors/router';
import { tryTargets } from '@api/handlers/handler-utils';
import type { AppEnv } from '@api/types/hono';
import { error } from '@shared/console-logging';
import { Hono } from 'hono';
export const embeddingsRouter = new Hono<AppEnv>()
/**
* Handles the '/embeddings' API request by selecting the appropriate provider(s) and making the request to them.
*
* @throws Will throw an error if no provider options can be determined or if the request to the provider(s) fails.
* @throws Will throw an 500 error if the handler fails due to some reasons
*/
.post(async (c): Promise<Response> => {
const saConfig = c.get('sa_config');
const saRequestData = c.get('sa_request_data');
try {
const tryTargetsResponse = await tryTargets(c, saConfig, saRequestData);
return tryTargetsResponse;
} catch (err: unknown) {
// Log detailed error information
error('[EMBEDDINGS] Request failed:', {
error: err instanceof Error ? err.message : String(err),
stack: err instanceof Error ? err.stack : undefined,
});
let statusCode = 500;
let errorMessage = 'Something went wrong';
if (err instanceof RouterError) {
statusCode = 400;
errorMessage = err.message;
}
return new Response(
JSON.stringify({
status: 'failure',
message: errorMessage,
}),
{
status: statusCode,
headers: {
'content-type': 'application/json',
},
},
);
}
});
|