@promptbook/cli 0.92.0-3 → 0.92.0-4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/index.es.js +273 -65
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/deepseek.index.d.ts +2 -0
- package/esm/typings/src/_packages/google.index.d.ts +2 -0
- package/esm/typings/src/llm-providers/deepseek/deepseek-models.d.ts +23 -0
- package/esm/typings/src/llm-providers/google/google-models.d.ts +23 -0
- package/esm/typings/src/personas/preparePersona.d.ts +1 -1
- package/esm/typings/src/pipeline/PipelineJson/PersonaJson.d.ts +4 -2
- package/package.json +1 -1
- package/umd/index.umd.js +273 -65
- package/umd/index.umd.js.map +1 -1
package/esm/index.es.js
CHANGED
|
@@ -46,7 +46,7 @@ const BOOK_LANGUAGE_VERSION = '1.0.0';
|
|
|
46
46
|
* @generated
|
|
47
47
|
* @see https://github.com/webgptorg/promptbook
|
|
48
48
|
*/
|
|
49
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.92.0-
|
|
49
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.92.0-4';
|
|
50
50
|
/**
|
|
51
51
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
52
52
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -4461,7 +4461,7 @@ async function loadArchive(filePath, fs) {
|
|
|
4461
4461
|
* Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
|
|
4462
4462
|
*/
|
|
4463
4463
|
|
|
4464
|
-
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.book",formfactorName:"GENERIC",parameters:[{name:"knowledgeContent",description:"Markdown document content",isInput:true,isOutput:false},{name:"knowledgePieces",description:"The knowledge JSON object",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {knowledgeContent}",resultingParameterName:"knowledgePieces",dependentParameterNames:["knowledgeContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Knowledge from Markdown\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.book`\n- INPUT PARAMETER `{knowledgeContent}` Markdown document content\n- OUTPUT PARAMETER `{knowledgePieces}` The knowledge JSON object\n\n## Knowledge\n\n<!-- TODO: [🍆] -FORMAT JSON -->\n\n```markdown\nYou are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {knowledgeContent}\n```\n\n`-> {knowledgePieces}`\n"}],sourceFile:"./books/prepare-knowledge-from-markdown.book"},{title:"Prepare Keywords",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-keywords.book",formfactorName:"GENERIC",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"keywords",description:"Keywords separated by comma",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {knowledgePieceContent}",resultingParameterName:"keywords",dependentParameterNames:["knowledgePieceContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Keywords\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-keywords.book`\n- INPUT PARAMETER `{knowledgePieceContent}` The content\n- OUTPUT PARAMETER `{keywords}` Keywords separated by comma\n\n## Knowledge\n\n<!-- TODO: [🍆] -FORMAT JSON -->\n\n```markdown\nYou are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {knowledgePieceContent}\n```\n\n`-> {keywords}`\n"}],sourceFile:"./books/prepare-knowledge-keywords.book"},{title:"Prepare Knowledge-piece Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-title.book",formfactorName:"GENERIC",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"title",description:"The title of the document",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Write maximum 5 words for the title\n\n# The document\n\n> {knowledgePieceContent}",resultingParameterName:"title",expectations:{words:{min:1,max:8}},dependentParameterNames:["knowledgePieceContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Knowledge-piece Title\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-title.book`\n- INPUT PARAMETER `{knowledgePieceContent}` The content\n- OUTPUT PARAMETER `{title}` The title of the document\n\n## Knowledge\n\n- EXPECT MIN 1 WORD\n- EXPECT MAX 8 WORDS\n\n```markdown\nYou are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Write maximum 5 words for the title\n\n# The document\n\n> {knowledgePieceContent}\n```\n\n`-> {title}`\n"}],sourceFile:"./books/prepare-knowledge-title.book"},{title:"Prepare Persona",pipelineUrl:"https://promptbook.studio/promptbook/prepare-persona.book",formfactorName:"GENERIC",parameters:[{name:"availableModelNames",description:"List of available model names separated by comma (,)",isInput:true,isOutput:false},{name:"personaDescription",description:"Description of the persona",isInput:true,isOutput:false},{name:"modelRequirements",description:"Specific requirements for the model",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"make-model-requirements",title:"Make modelRequirements",content:"You are experienced AI engineer, you need to create virtual assistant.\nWrite\n\n## Example\n\n```json\n{\n\"modelName\": \"gpt-4o\",\n\"systemMessage\": \"You are experienced AI engineer and helpfull assistant.\",\n\"temperature\": 0.7\n}\n```\n\n## Instructions\n\n- Your output format is JSON object\n- Write just the JSON object, no other text should be present\n- It contains the following keys:\n - `modelName`: The name of the model to use\n - `systemMessage`: The system message to provide context to the model\n - `temperature`: The sampling temperature to use\n\n### Key `modelName`\n\nPick from the following models:\n\n- {availableModelNames}\n\n### Key `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Key `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}",resultingParameterName:"modelRequirements",format:"JSON",dependentParameterNames:["availableModelNames","personaDescription"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Persona\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-persona.book`\n- INPUT PARAMETER `{availableModelNames}` List of available model names separated by comma (,)\n- INPUT PARAMETER `{personaDescription}` Description of the persona\n- OUTPUT PARAMETER `{modelRequirements}` Specific requirements for the model\n\n## Make modelRequirements\n\n- FORMAT JSON\n\n```markdown\nYou are experienced AI engineer, you need to create virtual assistant.\nWrite\n\n## Example\n\n\\`\\`\\`json\n{\n\"modelName\": \"gpt-4o\",\n\"systemMessage\": \"You are experienced AI engineer and helpfull assistant.\",\n\"temperature\": 0.7\n}\n\\`\\`\\`\n\n## Instructions\n\n- Your output format is JSON object\n- Write just the JSON object, no other text should be present\n- It contains the following keys:\n - `modelName`: The name of the model to use\n - `systemMessage`: The system message to provide context to the model\n - `temperature`: The sampling temperature to use\n\n### Key `modelName`\n\nPick from the following models:\n\n- {availableModelNames}\n\n### Key `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Key `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}\n```\n\n`-> {modelRequirements}`\n"}],sourceFile:"./books/prepare-persona.book"},{title:"Prepare Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-title.book",formfactorName:"GENERIC",parameters:[{name:"book",description:"The book to prepare the title for",isInput:true,isOutput:false},{name:"title",description:"Best title for the book",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"make-title",title:"Make title",content:"Make best title for given text which describes the workflow:\n\n## Rules\n\n- Write just title, nothing else\n- Title should be concise and clear - Write maximum ideally 2 words, maximum 5 words\n- Title starts with emoticon\n- Title should not mention the input and output of the workflow but the main purpose of the workflow\n _For example, not \"✍ Convert Knowledge-piece to title\" but \"✍ Title\"_\n\n## The workflow\n\n> {book}",resultingParameterName:"title",expectations:{words:{min:1,max:8},lines:{min:1,max:1}},dependentParameterNames:["book"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Title\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-title.book`\n- INPUT PARAMETER `{book}` The book to prepare the title for\n- OUTPUT PARAMETER `{title}` Best title for the book\n\n## Make title\n\n- EXPECT MIN 1 Word\n- EXPECT MAX 8 Words\n- EXPECT EXACTLY 1 Line\n\n```markdown\nMake best title for given text which describes the workflow:\n\n## Rules\n\n- Write just title, nothing else\n- Title should be concise and clear - Write maximum ideally 2 words, maximum 5 words\n- Title starts with emoticon\n- Title should not mention the input and output of the workflow but the main purpose of the workflow\n _For example, not \"✍ Convert Knowledge-piece to title\" but \"✍ Title\"_\n\n## The workflow\n\n> {book}\n```\n\n`-> {title}`\n"}],sourceFile:"./books/prepare-title.book"}];
|
|
4464
|
+
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.book",formfactorName:"GENERIC",parameters:[{name:"knowledgeContent",description:"Markdown document content",isInput:true,isOutput:false},{name:"knowledgePieces",description:"The knowledge JSON object",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {knowledgeContent}",resultingParameterName:"knowledgePieces",dependentParameterNames:["knowledgeContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Knowledge from Markdown\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.book`\n- INPUT PARAMETER `{knowledgeContent}` Markdown document content\n- OUTPUT PARAMETER `{knowledgePieces}` The knowledge JSON object\n\n## Knowledge\n\n<!-- TODO: [🍆] -FORMAT JSON -->\n\n```markdown\nYou are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {knowledgeContent}\n```\n\n`-> {knowledgePieces}`\n"}],sourceFile:"./books/prepare-knowledge-from-markdown.book"},{title:"Prepare Keywords",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-keywords.book",formfactorName:"GENERIC",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"keywords",description:"Keywords separated by comma",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {knowledgePieceContent}",resultingParameterName:"keywords",dependentParameterNames:["knowledgePieceContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Keywords\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-keywords.book`\n- INPUT PARAMETER `{knowledgePieceContent}` The content\n- OUTPUT PARAMETER `{keywords}` Keywords separated by comma\n\n## Knowledge\n\n<!-- TODO: [🍆] -FORMAT JSON -->\n\n```markdown\nYou are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {knowledgePieceContent}\n```\n\n`-> {keywords}`\n"}],sourceFile:"./books/prepare-knowledge-keywords.book"},{title:"Prepare Knowledge-piece Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-title.book",formfactorName:"GENERIC",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"title",description:"The title of the document",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Write maximum 5 words for the title\n\n# The document\n\n> {knowledgePieceContent}",resultingParameterName:"title",expectations:{words:{min:1,max:8}},dependentParameterNames:["knowledgePieceContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Knowledge-piece Title\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-title.book`\n- INPUT PARAMETER `{knowledgePieceContent}` The content\n- OUTPUT PARAMETER `{title}` The title of the document\n\n## Knowledge\n\n- EXPECT MIN 1 WORD\n- EXPECT MAX 8 WORDS\n\n```markdown\nYou are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Write maximum 5 words for the title\n\n# The document\n\n> {knowledgePieceContent}\n```\n\n`-> {title}`\n"}],sourceFile:"./books/prepare-knowledge-title.book"},{title:"Prepare Persona",pipelineUrl:"https://promptbook.studio/promptbook/prepare-persona.book",formfactorName:"GENERIC",parameters:[{name:"availableModels",description:"List of available model names together with their descriptions as JSON",isInput:true,isOutput:false},{name:"personaDescription",description:"Description of the persona",isInput:true,isOutput:false},{name:"modelsRequirements",description:"Specific requirements for the model",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"make-model-requirements",title:"Make modelRequirements",content:"You are an experienced AI engineer, you need to find the best models for virtual assistants:\n\n## Example\n\n```json\n[\n {\n \"modelName\": \"gpt-4o\",\n \"systemMessage\": \"You are experienced AI engineer and helpfull assistant.\",\n \"temperature\": 0.7\n },\n {\n \"modelName\": \"claude-3-5-sonnet\",\n \"systemMessage\": \"You are a friendly and knowledgeable chatbot.\",\n \"temperature\": 0.5\n }\n]\n```\n\n## Instructions\n\n- Your output format is JSON array\n- Sort best-fitting models first\n- Omit any models that are not suitable\n- Write just the JSON, no other text should be present\n- Array contain items with following keys:\n - `modelName`: The name of the model to use\n - `systemMessage`: The system message to provide context to the model\n - `temperature`: The sampling temperature to use\n\n### Key `modelName`\n\nHere are the available models:\n\n```json\n{availableModels}\n```\n\n### Key `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Key `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}",resultingParameterName:"modelsRequirements",format:"JSON",dependentParameterNames:["availableModels","personaDescription"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Persona\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-persona.book`\n- INPUT PARAMETER `{availableModels}` List of available model names together with their descriptions as JSON\n- INPUT PARAMETER `{personaDescription}` Description of the persona\n- OUTPUT PARAMETER `{modelsRequirements}` Specific requirements for the model\n\n## Make modelRequirements\n\n- FORMAT JSON\n\n```markdown\nYou are an experienced AI engineer, you need to find the best models for virtual assistants:\n\n## Example\n\n\\`\\`\\`json\n[\n {\n \"modelName\": \"gpt-4o\",\n \"systemMessage\": \"You are experienced AI engineer and helpfull assistant.\",\n \"temperature\": 0.7\n },\n {\n \"modelName\": \"claude-3-5-sonnet\",\n \"systemMessage\": \"You are a friendly and knowledgeable chatbot.\",\n \"temperature\": 0.5\n }\n]\n\\`\\`\\`\n\n## Instructions\n\n- Your output format is JSON array\n- Sort best-fitting models first\n- Omit any models that are not suitable\n- Write just the JSON, no other text should be present\n- Array contain items with following keys:\n - `modelName`: The name of the model to use\n - `systemMessage`: The system message to provide context to the model\n - `temperature`: The sampling temperature to use\n\n### Key `modelName`\n\nHere are the available models:\n\n\\`\\`\\`json\n{availableModels}\n\\`\\`\\`\n\n### Key `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Key `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}\n```\n\n`-> {modelsRequirements}`\n"}],sourceFile:"./books/prepare-persona.book"},{title:"Prepare Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-title.book",formfactorName:"GENERIC",parameters:[{name:"book",description:"The book to prepare the title for",isInput:true,isOutput:false},{name:"title",description:"Best title for the book",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"make-title",title:"Make title",content:"Make best title for given text which describes the workflow:\n\n## Rules\n\n- Write just title, nothing else\n- Title should be concise and clear - Write maximum ideally 2 words, maximum 5 words\n- Title starts with emoticon\n- Title should not mention the input and output of the workflow but the main purpose of the workflow\n _For example, not \"✍ Convert Knowledge-piece to title\" but \"✍ Title\"_\n\n## The workflow\n\n> {book}",resultingParameterName:"title",expectations:{words:{min:1,max:8},lines:{min:1,max:1}},dependentParameterNames:["book"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Title\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-title.book`\n- INPUT PARAMETER `{book}` The book to prepare the title for\n- OUTPUT PARAMETER `{title}` Best title for the book\n\n## Make title\n\n- EXPECT MIN 1 Word\n- EXPECT MAX 8 Words\n- EXPECT EXACTLY 1 Line\n\n```markdown\nMake best title for given text which describes the workflow:\n\n## Rules\n\n- Write just title, nothing else\n- Title should be concise and clear - Write maximum ideally 2 words, maximum 5 words\n- Title starts with emoticon\n- Title should not mention the input and output of the workflow but the main purpose of the workflow\n _For example, not \"✍ Convert Knowledge-piece to title\" but \"✍ Title\"_\n\n## The workflow\n\n> {book}\n```\n\n`-> {title}`\n"}],sourceFile:"./books/prepare-title.book"}];
|
|
4465
4465
|
|
|
4466
4466
|
/**
|
|
4467
4467
|
* Function isValidJsonString will tell you if the string is valid JSON or not
|
|
@@ -4722,7 +4722,7 @@ function extractParameterNames(template) {
|
|
|
4722
4722
|
*/
|
|
4723
4723
|
function unpreparePipeline(pipeline) {
|
|
4724
4724
|
let { personas, knowledgeSources, tasks } = pipeline;
|
|
4725
|
-
personas = personas.map((persona) => ({ ...persona,
|
|
4725
|
+
personas = personas.map((persona) => ({ ...persona, modelsRequirements: undefined, preparationIds: undefined }));
|
|
4726
4726
|
knowledgeSources = knowledgeSources.map((knowledgeSource) => ({ ...knowledgeSource, preparationIds: undefined }));
|
|
4727
4727
|
tasks = tasks.map((task) => {
|
|
4728
4728
|
let { dependentParameterNames } = task;
|
|
@@ -4880,7 +4880,7 @@ function isPipelinePrepared(pipeline) {
|
|
|
4880
4880
|
if (pipeline.title === undefined || pipeline.title === '' || pipeline.title === DEFAULT_BOOK_TITLE) {
|
|
4881
4881
|
return false;
|
|
4882
4882
|
}
|
|
4883
|
-
if (!pipeline.personas.every((persona) => persona.
|
|
4883
|
+
if (!pipeline.personas.every((persona) => persona.modelsRequirements !== undefined)) {
|
|
4884
4884
|
return false;
|
|
4885
4885
|
}
|
|
4886
4886
|
if (!pipeline.knowledgeSources.every((knowledgeSource) => knowledgeSource.preparationIds !== undefined)) {
|
|
@@ -7040,27 +7040,40 @@ async function preparePersona(personaDescription, tools, options) {
|
|
|
7040
7040
|
pipeline: await collection.getPipelineByUrl('https://promptbook.studio/promptbook/prepare-persona.book'),
|
|
7041
7041
|
tools,
|
|
7042
7042
|
});
|
|
7043
|
-
// TODO: [🚐] Make arrayable LLMs -> single LLM DRY
|
|
7044
7043
|
const _llms = arrayableToArray(tools.llm);
|
|
7045
7044
|
const llmTools = _llms.length === 1 ? _llms[0] : joinLlmExecutionTools(..._llms);
|
|
7046
|
-
const availableModels = await llmTools.listModels()
|
|
7047
|
-
const availableModelNames = availableModels
|
|
7045
|
+
const availableModels = (await llmTools.listModels())
|
|
7048
7046
|
.filter(({ modelVariant }) => modelVariant === 'CHAT')
|
|
7049
|
-
.map(({ modelName }) =>
|
|
7050
|
-
|
|
7051
|
-
|
|
7047
|
+
.map(({ modelName, modelDescription }) => ({
|
|
7048
|
+
modelName,
|
|
7049
|
+
modelDescription,
|
|
7050
|
+
// <- Note: `modelTitle` and `modelVariant` is not relevant for this task
|
|
7051
|
+
}));
|
|
7052
|
+
const result = await preparePersonaExecutor({
|
|
7053
|
+
availableModels /* <- Note: Passing as JSON */,
|
|
7054
|
+
personaDescription,
|
|
7055
|
+
}).asPromise();
|
|
7052
7056
|
const { outputParameters } = result;
|
|
7053
|
-
const {
|
|
7054
|
-
const
|
|
7057
|
+
const { modelsRequirements: modelsRequirementsJson } = outputParameters;
|
|
7058
|
+
const modelsRequirementsUnchecked = JSON.parse(modelsRequirementsJson);
|
|
7055
7059
|
if (isVerbose) {
|
|
7056
|
-
console.info(`PERSONA ${personaDescription}`,
|
|
7060
|
+
console.info(`PERSONA ${personaDescription}`, modelsRequirementsUnchecked);
|
|
7057
7061
|
}
|
|
7058
|
-
|
|
7059
|
-
|
|
7062
|
+
if (!Array.isArray(modelsRequirementsUnchecked)) {
|
|
7063
|
+
throw new UnexpectedError(spaceTrim((block) => `
|
|
7064
|
+
Invalid \`modelsRequirements\`:
|
|
7065
|
+
|
|
7066
|
+
\`\`\`json
|
|
7067
|
+
${block(JSON.stringify(modelsRequirementsUnchecked, null, 4))}
|
|
7068
|
+
\`\`\`
|
|
7069
|
+
`));
|
|
7070
|
+
}
|
|
7071
|
+
const modelsRequirements = modelsRequirementsUnchecked.map((modelRequirements) => ({
|
|
7060
7072
|
modelVariant: 'CHAT',
|
|
7061
|
-
|
|
7062
|
-
|
|
7063
|
-
|
|
7073
|
+
...modelRequirements,
|
|
7074
|
+
}));
|
|
7075
|
+
return {
|
|
7076
|
+
modelsRequirements,
|
|
7064
7077
|
};
|
|
7065
7078
|
}
|
|
7066
7079
|
/**
|
|
@@ -7487,14 +7500,14 @@ async function preparePipeline(pipeline, tools, options) {
|
|
|
7487
7500
|
// TODO: [🖌][🧠] Implement some `mapAsync` function
|
|
7488
7501
|
const preparedPersonas = new Array(personas.length);
|
|
7489
7502
|
await forEachAsync(personas, { maxParallelCount /* <- TODO: [🪂] When there are subtasks, this maximul limit can be broken */ }, async (persona, index) => {
|
|
7490
|
-
const
|
|
7503
|
+
const { modelsRequirements } = await preparePersona(persona.description, { ...tools, llm: llmToolsWithUsage }, {
|
|
7491
7504
|
rootDirname,
|
|
7492
7505
|
maxParallelCount /* <- TODO: [🪂] */,
|
|
7493
7506
|
isVerbose,
|
|
7494
7507
|
});
|
|
7495
7508
|
const preparedPersona = {
|
|
7496
7509
|
...persona,
|
|
7497
|
-
|
|
7510
|
+
modelsRequirements,
|
|
7498
7511
|
preparationIds: [/* TODO: [🧊] -> */ currentPreparation.id],
|
|
7499
7512
|
// <- TODO: [🍙] Make some standard order of json properties
|
|
7500
7513
|
};
|
|
@@ -14225,7 +14238,7 @@ const ANTHROPIC_CLAUDE_MODELS = exportJson({
|
|
|
14225
14238
|
},
|
|
14226
14239
|
{
|
|
14227
14240
|
modelVariant: 'CHAT',
|
|
14228
|
-
modelTitle: '
|
|
14241
|
+
modelTitle: 'Claude Instant 1.2',
|
|
14229
14242
|
modelName: 'claude-instant-1.2',
|
|
14230
14243
|
modelDescription: 'Older, faster Claude model optimized for high throughput applications. Lower cost but less capable than newer models. 100K context window.',
|
|
14231
14244
|
pricing: {
|
|
@@ -14735,7 +14748,7 @@ const OPENAI_MODELS = exportJson({
|
|
|
14735
14748
|
modelDescription: 'Legacy completion model with strong performance on text generation tasks. Optimized for complex instructions and longer outputs.',
|
|
14736
14749
|
pricing: {
|
|
14737
14750
|
prompt: computeUsage(`$2.00 / 1M tokens`),
|
|
14738
|
-
output: computeUsage(`$2.00 / 1M tokens`),
|
|
14751
|
+
output: computeUsage(`$2.00 / 1M tokens`),
|
|
14739
14752
|
},
|
|
14740
14753
|
},
|
|
14741
14754
|
/**/
|
|
@@ -14877,8 +14890,8 @@ const OPENAI_MODELS = exportJson({
|
|
|
14877
14890
|
modelName: 'gpt-3.5-turbo',
|
|
14878
14891
|
modelDescription: 'Latest version of GPT-3.5 Turbo with improved performance and instruction following capabilities. Default 4K context window with options for 16K.',
|
|
14879
14892
|
pricing: {
|
|
14880
|
-
prompt: computeUsage(`$
|
|
14881
|
-
output: computeUsage(`$
|
|
14893
|
+
prompt: computeUsage(`$0.50 / 1M tokens`),
|
|
14894
|
+
output: computeUsage(`$1.50 / 1M tokens`),
|
|
14882
14895
|
},
|
|
14883
14896
|
},
|
|
14884
14897
|
/**/
|
|
@@ -14902,7 +14915,7 @@ const OPENAI_MODELS = exportJson({
|
|
|
14902
14915
|
modelDescription: 'Efficient legacy completion model with a good balance of performance and speed. Suitable for straightforward text generation tasks.',
|
|
14903
14916
|
pricing: {
|
|
14904
14917
|
prompt: computeUsage(`$0.40 / 1M tokens`),
|
|
14905
|
-
output: computeUsage(`$0.40 / 1M tokens`),
|
|
14918
|
+
output: computeUsage(`$0.40 / 1M tokens`),
|
|
14906
14919
|
},
|
|
14907
14920
|
},
|
|
14908
14921
|
/**/
|
|
@@ -14956,7 +14969,7 @@ const OPENAI_MODELS = exportJson({
|
|
|
14956
14969
|
modelDescription: 'Preview version of GPT-4 Turbo that points to the latest model version. Features improved instruction following, 128K token context window and lower latency.',
|
|
14957
14970
|
pricing: {
|
|
14958
14971
|
prompt: computeUsage(`$10.00 / 1M tokens`),
|
|
14959
|
-
output: computeUsage(`$30.00 / 1M tokens`),
|
|
14972
|
+
output: computeUsage(`$30.00 / 1M tokens`),
|
|
14960
14973
|
},
|
|
14961
14974
|
},
|
|
14962
14975
|
/**/
|
|
@@ -15107,10 +15120,10 @@ const OPENAI_MODELS = exportJson({
|
|
|
15107
15120
|
modelVariant: 'CHAT',
|
|
15108
15121
|
modelTitle: 'o1',
|
|
15109
15122
|
modelName: 'o1',
|
|
15123
|
+
modelDescription: "OpenAI's advanced reasoning model focused on logic and problem-solving. Designed for complex analytical tasks with rigorous step-by-step reasoning. 128K context window.",
|
|
15110
15124
|
pricing: {
|
|
15111
|
-
prompt: computeUsage(`$
|
|
15112
|
-
output: computeUsage(`$
|
|
15113
|
-
// <- TODO: !! Unsure, check the pricing
|
|
15125
|
+
prompt: computeUsage(`$15.00 / 1M tokens`),
|
|
15126
|
+
output: computeUsage(`$60.00 / 1M tokens`),
|
|
15114
15127
|
},
|
|
15115
15128
|
},
|
|
15116
15129
|
/**/
|
|
@@ -15119,7 +15132,7 @@ const OPENAI_MODELS = exportJson({
|
|
|
15119
15132
|
modelVariant: 'CHAT',
|
|
15120
15133
|
modelTitle: 'o3-mini',
|
|
15121
15134
|
modelName: 'o3-mini',
|
|
15122
|
-
modelDescription: '
|
|
15135
|
+
modelDescription: 'Cost-effective reasoning model optimized for academic and scientific problem-solving. Efficient performance on STEM tasks with deep mathematical and scientific knowledge. 128K context window.',
|
|
15123
15136
|
pricing: {
|
|
15124
15137
|
prompt: computeUsage(`$3.00 / 1M tokens`),
|
|
15125
15138
|
output: computeUsage(`$12.00 / 1M tokens`),
|
|
@@ -15698,6 +15711,67 @@ function createExecutionToolsFromVercelProvider(options) {
|
|
|
15698
15711
|
};
|
|
15699
15712
|
}
|
|
15700
15713
|
|
|
15714
|
+
/**
|
|
15715
|
+
* List of available Deepseek models with descriptions
|
|
15716
|
+
*
|
|
15717
|
+
* Note: Done at 2025-04-22
|
|
15718
|
+
*
|
|
15719
|
+
* @see https://www.deepseek.com/models
|
|
15720
|
+
* @public exported from `@promptbook/deepseek`
|
|
15721
|
+
*/
|
|
15722
|
+
const DEEPSEEK_MODELS = exportJson({
|
|
15723
|
+
name: 'DEEPSEEK_MODELS',
|
|
15724
|
+
value: [
|
|
15725
|
+
{
|
|
15726
|
+
modelVariant: 'CHAT',
|
|
15727
|
+
modelTitle: 'Deepseek Chat',
|
|
15728
|
+
modelName: 'deepseek-chat',
|
|
15729
|
+
modelDescription: 'General-purpose language model with strong performance across conversation, reasoning, and content generation. 128K context window with excellent instruction following capabilities.',
|
|
15730
|
+
pricing: {
|
|
15731
|
+
prompt: computeUsage(`$1.00 / 1M tokens`),
|
|
15732
|
+
output: computeUsage(`$2.00 / 1M tokens`),
|
|
15733
|
+
},
|
|
15734
|
+
},
|
|
15735
|
+
{
|
|
15736
|
+
modelVariant: 'CHAT',
|
|
15737
|
+
modelTitle: 'Deepseek Reasoner',
|
|
15738
|
+
modelName: 'deepseek-reasoner',
|
|
15739
|
+
modelDescription: 'Specialized model focused on complex reasoning tasks like mathematical problem-solving and logical analysis. Enhanced step-by-step reasoning with explicit chain-of-thought processes. 128K context window.',
|
|
15740
|
+
pricing: {
|
|
15741
|
+
prompt: computeUsage(`$4.00 / 1M tokens`),
|
|
15742
|
+
output: computeUsage(`$8.00 / 1M tokens`),
|
|
15743
|
+
},
|
|
15744
|
+
},
|
|
15745
|
+
{
|
|
15746
|
+
modelVariant: 'CHAT',
|
|
15747
|
+
modelTitle: 'DeepSeek V3',
|
|
15748
|
+
modelName: 'deepseek-v3-0324',
|
|
15749
|
+
modelDescription: 'Advanced general-purpose model with improved reasoning, coding abilities, and multimodal understanding. Built on the latest DeepSeek architecture with enhanced knowledge representation.',
|
|
15750
|
+
pricing: {
|
|
15751
|
+
prompt: computeUsage(`$1.50 / 1M tokens`),
|
|
15752
|
+
output: computeUsage(`$3.00 / 1M tokens`),
|
|
15753
|
+
},
|
|
15754
|
+
},
|
|
15755
|
+
{
|
|
15756
|
+
modelVariant: 'CHAT',
|
|
15757
|
+
modelTitle: 'DeepSeek R1',
|
|
15758
|
+
modelName: 'deepseek-r1',
|
|
15759
|
+
modelDescription: 'Research-focused model optimized for scientific problem-solving and analytical tasks. Excellent performance on tasks requiring domain-specific expertise and critical thinking.',
|
|
15760
|
+
pricing: {
|
|
15761
|
+
prompt: computeUsage(`$5.00 / 1M tokens`),
|
|
15762
|
+
output: computeUsage(`$10.00 / 1M tokens`),
|
|
15763
|
+
},
|
|
15764
|
+
},
|
|
15765
|
+
// <- [🕕]
|
|
15766
|
+
],
|
|
15767
|
+
});
|
|
15768
|
+
/**
|
|
15769
|
+
* TODO: [🧠] Add information about context window sizes, capabilities, and relative performance characteristics
|
|
15770
|
+
* TODO: [🎰] Some mechanism to auto-update available models
|
|
15771
|
+
* TODO: [🧠] Verify pricing information is current with Deepseek's official documentation
|
|
15772
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
15773
|
+
*/
|
|
15774
|
+
|
|
15701
15775
|
/**
|
|
15702
15776
|
* Execution Tools for calling Deepseek API.
|
|
15703
15777
|
*
|
|
@@ -15719,18 +15793,7 @@ const createDeepseekExecutionTools = Object.assign((options) => {
|
|
|
15719
15793
|
title: 'Deepseek',
|
|
15720
15794
|
description: 'Implementation of Deepseek models',
|
|
15721
15795
|
vercelProvider: deepseekVercelProvider,
|
|
15722
|
-
availableModels:
|
|
15723
|
-
{
|
|
15724
|
-
modelName: 'deepseek-chat',
|
|
15725
|
-
modelVariant: 'CHAT',
|
|
15726
|
-
},
|
|
15727
|
-
{
|
|
15728
|
-
modelName: 'deepseek-reasoner',
|
|
15729
|
-
modelVariant: 'CHAT',
|
|
15730
|
-
},
|
|
15731
|
-
// <- [🕕]
|
|
15732
|
-
// <- TODO: How picking of the default model looks like in `createExecutionToolsFromVercelProvider`
|
|
15733
|
-
],
|
|
15796
|
+
availableModels: DEEPSEEK_MODELS,
|
|
15734
15797
|
...options,
|
|
15735
15798
|
});
|
|
15736
15799
|
}, {
|
|
@@ -15805,6 +15868,173 @@ const _GoogleMetadataRegistration = $llmToolsMetadataRegister.register({
|
|
|
15805
15868
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
15806
15869
|
*/
|
|
15807
15870
|
|
|
15871
|
+
/**
|
|
15872
|
+
* List of available Google models with descriptions
|
|
15873
|
+
*
|
|
15874
|
+
* Note: Done at 2025-04-22
|
|
15875
|
+
*
|
|
15876
|
+
* @see https://ai.google.dev/models/gemini
|
|
15877
|
+
* @public exported from `@promptbook/google`
|
|
15878
|
+
*/
|
|
15879
|
+
const GOOGLE_MODELS = exportJson({
|
|
15880
|
+
name: 'GOOGLE_MODELS',
|
|
15881
|
+
value: [
|
|
15882
|
+
{
|
|
15883
|
+
modelVariant: 'CHAT',
|
|
15884
|
+
modelTitle: 'Gemini 2.5 Pro',
|
|
15885
|
+
modelName: 'gemini-2.5-pro-preview-03-25',
|
|
15886
|
+
modelDescription: 'Latest advanced multimodal model with exceptional reasoning, tool use, and instruction following. 1M token context window with improved vision capabilities for complex visual tasks.',
|
|
15887
|
+
pricing: {
|
|
15888
|
+
prompt: computeUsage(`$7.00 / 1M tokens`),
|
|
15889
|
+
output: computeUsage(`$21.00 / 1M tokens`),
|
|
15890
|
+
},
|
|
15891
|
+
},
|
|
15892
|
+
{
|
|
15893
|
+
modelVariant: 'CHAT',
|
|
15894
|
+
modelTitle: 'Gemini 2.0 Flash',
|
|
15895
|
+
modelName: 'gemini-2.0-flash',
|
|
15896
|
+
modelDescription: 'Fast, efficient model optimized for rapid response times. Good balance between performance and cost, with strong capabilities across text, code, and reasoning tasks. 128K context window.',
|
|
15897
|
+
pricing: {
|
|
15898
|
+
prompt: computeUsage(`$0.35 / 1M tokens`),
|
|
15899
|
+
output: computeUsage(`$1.05 / 1M tokens`),
|
|
15900
|
+
},
|
|
15901
|
+
},
|
|
15902
|
+
{
|
|
15903
|
+
modelVariant: 'CHAT',
|
|
15904
|
+
modelTitle: 'Gemini 2.0 Flash Lite',
|
|
15905
|
+
modelName: 'gemini-2.0-flash-lite',
|
|
15906
|
+
modelDescription: 'Streamlined version of Gemini 2.0 Flash, designed for extremely low-latency applications and edge deployments. Optimized for efficiency while maintaining core capabilities.',
|
|
15907
|
+
pricing: {
|
|
15908
|
+
prompt: computeUsage(`$0.20 / 1M tokens`),
|
|
15909
|
+
output: computeUsage(`$0.60 / 1M tokens`),
|
|
15910
|
+
},
|
|
15911
|
+
},
|
|
15912
|
+
{
|
|
15913
|
+
modelVariant: 'CHAT',
|
|
15914
|
+
modelTitle: 'Gemini 2.0 Flash Thinking',
|
|
15915
|
+
modelName: 'gemini-2.0-flash-thinking-exp-01-21',
|
|
15916
|
+
modelDescription: 'Experimental model focused on enhanced reasoning with explicit chain-of-thought processes. Designed for tasks requiring structured thinking and problem-solving approaches.',
|
|
15917
|
+
pricing: {
|
|
15918
|
+
prompt: computeUsage(`$0.35 / 1M tokens`),
|
|
15919
|
+
output: computeUsage(`$1.05 / 1M tokens`),
|
|
15920
|
+
},
|
|
15921
|
+
},
|
|
15922
|
+
{
|
|
15923
|
+
modelVariant: 'CHAT',
|
|
15924
|
+
modelTitle: 'Gemini 1.5 Flash',
|
|
15925
|
+
modelName: 'gemini-1.5-flash',
|
|
15926
|
+
modelDescription: 'Efficient model balancing speed and quality for general-purpose applications. 1M token context window with good multimodal capabilities and quick response times.',
|
|
15927
|
+
pricing: {
|
|
15928
|
+
prompt: computeUsage(`$0.35 / 1M tokens`),
|
|
15929
|
+
output: computeUsage(`$1.05 / 1M tokens`),
|
|
15930
|
+
},
|
|
15931
|
+
},
|
|
15932
|
+
{
|
|
15933
|
+
modelVariant: 'CHAT',
|
|
15934
|
+
modelTitle: 'Gemini 1.5 Flash Latest',
|
|
15935
|
+
modelName: 'gemini-1.5-flash-latest',
|
|
15936
|
+
modelDescription: 'Points to the latest version of Gemini 1.5 Flash, ensuring access to the most recent improvements and bug fixes while maintaining stable interfaces.',
|
|
15937
|
+
},
|
|
15938
|
+
{
|
|
15939
|
+
modelVariant: 'CHAT',
|
|
15940
|
+
modelTitle: 'Gemini 1.5 Flash 001',
|
|
15941
|
+
modelName: 'gemini-1.5-flash-001',
|
|
15942
|
+
modelDescription: 'First stable release of Gemini 1.5 Flash model with reliable performance characteristics for production applications. 1M token context window.',
|
|
15943
|
+
},
|
|
15944
|
+
{
|
|
15945
|
+
modelVariant: 'CHAT',
|
|
15946
|
+
modelTitle: 'Gemini 1.5 Flash 002',
|
|
15947
|
+
modelName: 'gemini-1.5-flash-002',
|
|
15948
|
+
modelDescription: 'Improved version of Gemini 1.5 Flash with enhanced instruction following and more consistent outputs. Refined for better application integration.',
|
|
15949
|
+
},
|
|
15950
|
+
{
|
|
15951
|
+
modelVariant: 'CHAT',
|
|
15952
|
+
modelTitle: 'Gemini 1.5 Flash Exp',
|
|
15953
|
+
modelName: 'gemini-1.5-flash-exp-0827',
|
|
15954
|
+
modelDescription: 'Experimental version of Gemini 1.5 Flash with new capabilities being tested. May offer improved performance but with potential behavior differences from stable releases.',
|
|
15955
|
+
},
|
|
15956
|
+
{
|
|
15957
|
+
modelVariant: 'CHAT',
|
|
15958
|
+
modelTitle: 'Gemini 1.5 Flash 8B',
|
|
15959
|
+
modelName: 'gemini-1.5-flash-8b',
|
|
15960
|
+
modelDescription: 'Compact 8B parameter model optimized for efficiency and deployment in resource-constrained environments. Good performance despite smaller size.',
|
|
15961
|
+
},
|
|
15962
|
+
{
|
|
15963
|
+
modelVariant: 'CHAT',
|
|
15964
|
+
modelTitle: 'Gemini 1.5 Flash 8B Latest',
|
|
15965
|
+
modelName: 'gemini-1.5-flash-8b-latest',
|
|
15966
|
+
modelDescription: 'Points to the most recent version of the compact 8B parameter model, providing latest improvements while maintaining a small footprint.',
|
|
15967
|
+
},
|
|
15968
|
+
{
|
|
15969
|
+
modelVariant: 'CHAT',
|
|
15970
|
+
modelTitle: 'Gemini 1.5 Flash 8B Exp',
|
|
15971
|
+
modelName: 'gemini-1.5-flash-8b-exp-0924',
|
|
15972
|
+
modelDescription: 'Experimental version of the 8B parameter model with new capabilities and optimizations being evaluated for future stable releases.',
|
|
15973
|
+
},
|
|
15974
|
+
{
|
|
15975
|
+
modelVariant: 'CHAT',
|
|
15976
|
+
modelTitle: 'Gemini 1.5 Flash 8B Exp',
|
|
15977
|
+
modelName: 'gemini-1.5-flash-8b-exp-0827',
|
|
15978
|
+
modelDescription: 'August experimental release of the efficient 8B parameter model with specific improvements to reasoning capabilities and response quality.',
|
|
15979
|
+
},
|
|
15980
|
+
{
|
|
15981
|
+
modelVariant: 'CHAT',
|
|
15982
|
+
modelTitle: 'Gemini 1.5 Pro Latest',
|
|
15983
|
+
modelName: 'gemini-1.5-pro-latest',
|
|
15984
|
+
modelDescription: 'Points to the most recent version of the flagship Gemini 1.5 Pro model, ensuring access to the latest capabilities and improvements.',
|
|
15985
|
+
pricing: {
|
|
15986
|
+
prompt: computeUsage(`$7.00 / 1M tokens`),
|
|
15987
|
+
output: computeUsage(`$21.00 / 1M tokens`),
|
|
15988
|
+
},
|
|
15989
|
+
},
|
|
15990
|
+
{
|
|
15991
|
+
modelVariant: 'CHAT',
|
|
15992
|
+
modelTitle: 'Gemini 1.5 Pro',
|
|
15993
|
+
modelName: 'gemini-1.5-pro',
|
|
15994
|
+
modelDescription: 'Flagship multimodal model with strong performance across text, code, vision, and audio tasks. 1M token context window with excellent reasoning capabilities.',
|
|
15995
|
+
pricing: {
|
|
15996
|
+
prompt: computeUsage(`$7.00 / 1M tokens`),
|
|
15997
|
+
output: computeUsage(`$21.00 / 1M tokens`),
|
|
15998
|
+
},
|
|
15999
|
+
},
|
|
16000
|
+
{
|
|
16001
|
+
modelVariant: 'CHAT',
|
|
16002
|
+
modelTitle: 'Gemini 1.5 Pro 001',
|
|
16003
|
+
modelName: 'gemini-1.5-pro-001',
|
|
16004
|
+
modelDescription: 'First stable release of Gemini 1.5 Pro with consistent performance characteristics and reliable behavior for production applications.',
|
|
16005
|
+
},
|
|
16006
|
+
{
|
|
16007
|
+
modelVariant: 'CHAT',
|
|
16008
|
+
modelTitle: 'Gemini 1.5 Pro 002',
|
|
16009
|
+
modelName: 'gemini-1.5-pro-002',
|
|
16010
|
+
modelDescription: 'Refined version of Gemini 1.5 Pro with improved instruction following, better multimodal understanding, and more consistent outputs.',
|
|
16011
|
+
},
|
|
16012
|
+
{
|
|
16013
|
+
modelVariant: 'CHAT',
|
|
16014
|
+
modelTitle: 'Gemini 1.5 Pro Exp',
|
|
16015
|
+
modelName: 'gemini-1.5-pro-exp-0827',
|
|
16016
|
+
modelDescription: 'Experimental version of Gemini 1.5 Pro with new capabilities and optimizations being tested before wider release. May offer improved performance.',
|
|
16017
|
+
},
|
|
16018
|
+
{
|
|
16019
|
+
modelVariant: 'CHAT',
|
|
16020
|
+
modelTitle: 'Gemini 1.0 Pro',
|
|
16021
|
+
modelName: 'gemini-1.0-pro',
|
|
16022
|
+
modelDescription: 'Original Gemini series foundation model with solid multimodal capabilities. 32K context window with good performance on text, code, and basic vision tasks.',
|
|
16023
|
+
pricing: {
|
|
16024
|
+
prompt: computeUsage(`$0.35 / 1M tokens`),
|
|
16025
|
+
output: computeUsage(`$1.05 / 1M tokens`),
|
|
16026
|
+
},
|
|
16027
|
+
},
|
|
16028
|
+
// <- [🕕]
|
|
16029
|
+
],
|
|
16030
|
+
});
|
|
16031
|
+
/**
|
|
16032
|
+
* TODO: [🧠] Add information about context window sizes, capabilities, and relative performance characteristics
|
|
16033
|
+
* TODO: [🎰] Some mechanism to auto-update available models
|
|
16034
|
+
* TODO: [🧠] Verify pricing information is current with Google's official documentation
|
|
16035
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
16036
|
+
*/
|
|
16037
|
+
|
|
15808
16038
|
/**
|
|
15809
16039
|
* Execution Tools for calling Google Gemini API.
|
|
15810
16040
|
*
|
|
@@ -15826,29 +16056,7 @@ const createGoogleExecutionTools = Object.assign((options) => {
|
|
|
15826
16056
|
title: 'Google',
|
|
15827
16057
|
description: 'Implementation of Google models',
|
|
15828
16058
|
vercelProvider: googleGeminiVercelProvider,
|
|
15829
|
-
availableModels:
|
|
15830
|
-
// TODO: [🕘] Maybe list models in same way as in other providers - in separate file with metadata
|
|
15831
|
-
'gemini-2.5-pro-preview-03-25',
|
|
15832
|
-
'gemini-2.0-flash',
|
|
15833
|
-
'gemini-2.0-flash-lite',
|
|
15834
|
-
'gemini-2.0-flash-thinking-exp-01-21',
|
|
15835
|
-
'gemini-1.5-flash',
|
|
15836
|
-
'gemini-1.5-flash-latest',
|
|
15837
|
-
'gemini-1.5-flash-001',
|
|
15838
|
-
'gemini-1.5-flash-002',
|
|
15839
|
-
'gemini-1.5-flash-exp-0827',
|
|
15840
|
-
'gemini-1.5-flash-8b',
|
|
15841
|
-
'gemini-1.5-flash-8b-latest',
|
|
15842
|
-
'gemini-1.5-flash-8b-exp-0924',
|
|
15843
|
-
'gemini-1.5-flash-8b-exp-0827',
|
|
15844
|
-
'gemini-1.5-pro-latest',
|
|
15845
|
-
'gemini-1.5-pro',
|
|
15846
|
-
'gemini-1.5-pro-001',
|
|
15847
|
-
'gemini-1.5-pro-002',
|
|
15848
|
-
'gemini-1.5-pro-exp-0827',
|
|
15849
|
-
'gemini-1.0-pro',
|
|
15850
|
-
// <- [🕕]
|
|
15851
|
-
].map((modelName) => ({ modelName, modelVariant: 'CHAT' })),
|
|
16059
|
+
availableModels: GOOGLE_MODELS,
|
|
15852
16060
|
...options,
|
|
15853
16061
|
});
|
|
15854
16062
|
}, {
|