| |
| import { |
| AuthType, |
| createContentGeneratorConfig, |
| createContentGenerator, |
| } from '@google/gemini-cli-core/dist/src/core/contentGenerator.js'; |
|
|
| |
| |
| |
| let modelName: string; |
| const generatorPromise = (async () => { |
| |
| const cfg = await createContentGeneratorConfig( |
| undefined, |
| AuthType.USE_GEMINI |
| ); |
| modelName = cfg.model; |
| return await createContentGenerator(cfg); |
| })(); |
|
|
| |
| |
| |
| type GenConfig = Record<string, unknown>; |
|
|
| export async function sendChat({ |
| contents, |
| generationConfig = {}, |
| }: { |
| contents: any[]; |
| generationConfig?: GenConfig; |
| tools?: unknown; // accepted but ignored for now |
| }) { |
| const generator: any = await generatorPromise; |
| return await generator.generateContent({ |
| model: modelName, |
| contents, |
| config: generationConfig, |
| }); |
| } |
|
|
| export async function* sendChatStream({ |
| contents, |
| generationConfig = {}, |
| }: { |
| contents: any[]; |
| generationConfig?: GenConfig; |
| tools?: unknown; |
| }) { |
| const generator: any = await generatorPromise; |
| const stream = await generator.generateContentStream({ |
| model: modelName, |
| contents, |
| config: generationConfig, |
| }); |
| for await (const chunk of stream) yield chunk; |
| } |
|
|
| |
| |
| |
| export function listModels() { |
| return [{ id: modelName }]; |
| } |
|
|
| export async function embed(_input: unknown) { |
| throw new Error('Embeddings endpoint not implemented yet.'); |
| } |
|
|