UNPKG

@promptbook/google

Version:

Promptbook: Turn your company's scattered knowledge into AI ready books

56 lines (55 loc) 2.65 kB
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 */