@promptbook/google
Version:
Promptbook: Turn your company's scattered knowledge into AI ready books
56 lines (55 loc) • 2.65 kB
TypeScript
import type { string_markdown_text, string_mime_type_with_wildcard, string_user_id } from '../../../types/typeAliases';
import { MultipleLlmExecutionTools } from '../../_multiple/MultipleLlmExecutionTools';
import type { LlmToolsConfiguration } from './LlmToolsConfiguration';
/**
* Options for `$provideLlmToolsFromEnv`
*
* @private internal type for `$provideLlmToolsFromEnv` and `$provideLlmToolsForTestingAndScriptsAndPlayground`
*/
export type CreateLlmToolsFromConfigurationOptions = {
/**
* Title of the LLM tools
*
* @default 'LLM Tools from Configuration'
*/
readonly title?: string_mime_type_with_wildcard & string_markdown_text;
/**
* This will will be passed to the created `LlmExecutionTools`
*
* @default false
*/
readonly isVerbose?: boolean;
/**
* Identifier of the end user
*
* Note: This is passed to the LLM tools providers to identify misuse
*/
readonly userId?: string_user_id;
};
/**
* Creates LLM execution tools from provided configuration objects
*
* Instantiates and configures LLM tool instances for each configuration entry,
* combining them into a unified interface via MultipleLlmExecutionTools.
*
* Note: This function is not cached, every call creates new instance of `MultipleLlmExecutionTools`
*
* @param configuration Array of LLM tool configurations to instantiate
* @param options Additional options for configuring the LLM tools
* @returns A unified interface combining all successfully instantiated LLM tools
* @public exported from `@promptbook/core`
*/
export declare function createLlmToolsFromConfiguration(configuration: LlmToolsConfiguration, options?: CreateLlmToolsFromConfigurationOptions): MultipleLlmExecutionTools;
/**
* TODO: [🎌] Together with `createLlmToolsFromConfiguration` + 'EXECUTION_TOOLS_CLASSES' gets to `@promptbook/core` ALL model providers, make this more efficient
* TODO: [🧠][🎌] Dynamically install required providers
* TODO: We should implement an interactive configuration wizard that would:
* 1. Detect which LLM providers are available in the environment
* 2. Guide users through required configuration settings for each provider
* 3. Allow testing connections before completing setup
* 4. Generate appropriate configuration code for application integration
* TODO: [🧠][🍛] Which name is better `createLlmToolsFromConfig` or `createLlmToolsFromConfiguration`?
* TODO: [🧠] Is there some meaningfull way how to test this util
* TODO: This should be maybe not under `_common` but under `utils`
* TODO: [®] DRY Register logic
*/