MCPcopy Create free account
hub / github.com/cortexkit/magic-context / chooseEmbedding

Function chooseEmbedding

packages/cli/src/commands/setup-pi.ts:192–224  ·  view source on GitHub ↗
(prompts: PromptIO)

Source from the content-addressed store, hash-verified

190}
191
192async function chooseEmbedding(prompts: PromptIO): Promise<EmbeddingChoice> {
193 const provider = await prompts.selectOne("Select embedding provider", [
194 {
195 label: "Local embeddings — no API key required",
196 value: "local",
197 recommended: true,
198 },
199 { label: "OpenAI-compatible endpoint", value: "openai-compatible" },
200 ]);
201
202 if (provider === "local") {
203 return { provider: "local", model: "Xenova/all-MiniLM-L6-v2" };
204 }
205
206 const endpoint = await prompts.text("Embedding endpoint URL", {
207 placeholder: "https://api.openai.com/v1",
208 validate: (value) => (value.trim().length === 0 ? "Endpoint is required" : undefined),
209 });
210 const model = await prompts.text("Embedding model", {
211 initialValue: "text-embedding-3-small",
212 validate: (value) => (value.trim().length === 0 ? "Model is required" : undefined),
213 });
214 const apiKey = await prompts.text("Embedding API key (optional; leave blank to use env)", {
215 placeholder: "optional",
216 });
217
218 return compactObject({
219 provider: "openai-compatible" as const,
220 endpoint: endpoint.trim(),
221 model: model.trim(),
222 api_key: apiKey.trim() || undefined,
223 });
224}
225
226export async function runSetup(options: RunSetupOptions = {}): Promise<number> {
227 const prompts = options.prompts ?? (await getDefaultPrompts());

Callers 1

runSetupFunction · 0.85

Calls 3

compactObjectFunction · 0.85
selectOneMethod · 0.65
textMethod · 0.65

Tested by

no test coverage detected