mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-03-05 07:40:19 +01:00
* chore: Update logging format for tool execution handler to improve clarity * fix: Expand toolkit tools in loadToolDefinitions for event-driven mode The image_gen_oai toolkit contains both image_gen_oai and image_edit_oai tools, but the definitions-only path only returned image_gen_oai. This adds toolkit expansion so child tools are included in definitions, and resolves child tool names to their parent toolkit constructor at runtime. * chore: Remove toolkit flag from gemini_image_gen gemini_image_gen only has a single tool, so it is not a true toolkit. * refactor: Address review findings for toolkit expansion - Guard against duplicate constructor calls when parent and child tools are both in the tools array (Finding 2) - Consolidate image tool descriptions/schemas — registry now derives from toolkit objects (oaiToolkit, geminiToolkit) instead of duplicating them, so env var overrides are respected everywhere (Finding 5) - Move toolkitExpansion/toolkitParent to toolkits/mapping.ts with immutable types (Findings 6, 9) - Add tests for toolkit expansion, deduplication, and mapping invariants (Finding 1) - Fix log format to quote each tool individually (Finding 8) * fix: Correct toolkit constructor lookup to store under requested tool name The previous dedup guard stored the factory under toolKey (parent name) instead of tool (requested name), causing the promise loop to miss child tools like image_edit_oai. Now stores under both the parent key (for dedup) and the requested name (for lookup), with a memoized factory to ensure the constructor runs only once.
170 lines
6.3 KiB
JSON
170 lines
6.3 KiB
JSON
[
|
|
{
|
|
"name": "Traversaal",
|
|
"pluginKey": "traversaal_search",
|
|
"description": "Traversaal is a robust search API tailored for LLM Agents. Get an API key here: https://api.traversaal.ai",
|
|
"icon": "https://traversaal.ai/favicon.ico",
|
|
"authConfig": [
|
|
{
|
|
"authField": "TRAVERSAAL_API_KEY",
|
|
"label": "Traversaal API Key",
|
|
"description": "Get your API key here: <a href=\"https://api.traversaal.ai\" target=\"_blank\">https://api.traversaal.ai</a>"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Google",
|
|
"pluginKey": "google",
|
|
"description": "Use Google Search to find information about the weather, news, sports, and more.",
|
|
"icon": "assets/google-search.svg",
|
|
"authConfig": [
|
|
{
|
|
"authField": "GOOGLE_CSE_ID",
|
|
"label": "Google CSE ID",
|
|
"description": "This is your Google Custom Search Engine ID. For instructions on how to obtain this, see <a href='https://github.com/danny-avila/LibreChat/blob/main/docs/features/plugins/google_search.md'>Our Docs</a>."
|
|
},
|
|
{
|
|
"authField": "GOOGLE_SEARCH_API_KEY",
|
|
"label": "Google API Key",
|
|
"description": "This is your Google Custom Search API Key. For instructions on how to obtain this, see <a href='https://github.com/danny-avila/LibreChat/blob/main/docs/features/plugins/google_search.md'>Our Docs</a>."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "OpenAI Image Tools",
|
|
"pluginKey": "image_gen_oai",
|
|
"toolkit": true,
|
|
"description": "Image Generation and Editing using OpenAI's latest state-of-the-art models",
|
|
"icon": "assets/image_gen_oai.png",
|
|
"authConfig": [
|
|
{
|
|
"authField": "IMAGE_GEN_OAI_API_KEY",
|
|
"label": "OpenAI Image Tools API Key",
|
|
"description": "Your OpenAI API Key for Image Generation and Editing"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Wolfram",
|
|
"pluginKey": "wolfram",
|
|
"description": "Access computation, math, curated knowledge & real-time data through Wolfram|Alpha and Wolfram Language.",
|
|
"icon": "https://www.wolframcdn.com/images/icons/Wolfram.png",
|
|
"authConfig": [
|
|
{
|
|
"authField": "WOLFRAM_APP_ID",
|
|
"label": "Wolfram App ID",
|
|
"description": "An AppID must be supplied in all calls to the Wolfram|Alpha API. You can get one by registering at <a href='http://products.wolframalpha.com/api/'>Wolfram|Alpha</a> and going to the <a href='https://developer.wolframalpha.com/portal/myapps/'>Developer Portal</a>."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "DALL-E-3",
|
|
"pluginKey": "dalle",
|
|
"description": "[DALL-E-3] Create realistic images and art from a description in natural language",
|
|
"icon": "assets/openai.svg",
|
|
"authConfig": [
|
|
{
|
|
"authField": "DALLE3_API_KEY||DALLE_API_KEY",
|
|
"label": "OpenAI API Key",
|
|
"description": "You can use DALL-E with your API Key from OpenAI."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Tavily Search",
|
|
"pluginKey": "tavily_search_results_json",
|
|
"description": "Tavily Search is a robust search API tailored for LLM Agents. It seamlessly integrates with diverse data sources to ensure a superior, relevant search experience.",
|
|
"icon": "assets/tavily.svg",
|
|
"authConfig": [
|
|
{
|
|
"authField": "TAVILY_API_KEY",
|
|
"label": "Tavily API Key",
|
|
"description": "Get your API key here: https://app.tavily.com/"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Calculator",
|
|
"pluginKey": "calculator",
|
|
"description": "Perform simple and complex mathematical calculations.",
|
|
"icon": "assets/calculator.svg",
|
|
"authConfig": []
|
|
},
|
|
{
|
|
"name": "Stable Diffusion",
|
|
"pluginKey": "stable-diffusion",
|
|
"description": "Generate photo-realistic images given any text input.",
|
|
"icon": "assets/stability-ai.svg",
|
|
"authConfig": [
|
|
{
|
|
"authField": "SD_WEBUI_URL",
|
|
"label": "Your Stable Diffusion WebUI API URL",
|
|
"description": "You need to provide the URL of your Stable Diffusion WebUI API. For instructions on how to obtain this, see <a href='url'>Our Docs</a>."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Azure AI Search",
|
|
"pluginKey": "azure-ai-search",
|
|
"description": "Use Azure AI Search to find information",
|
|
"icon": "assets/azure-ai-search.svg",
|
|
"authConfig": [
|
|
{
|
|
"authField": "AZURE_AI_SEARCH_SERVICE_ENDPOINT",
|
|
"label": "Azure AI Search Endpoint",
|
|
"description": "You need to provide your Endpoint for Azure AI Search."
|
|
},
|
|
{
|
|
"authField": "AZURE_AI_SEARCH_INDEX_NAME",
|
|
"label": "Azure AI Search Index Name",
|
|
"description": "You need to provide your Index Name for Azure AI Search."
|
|
},
|
|
{
|
|
"authField": "AZURE_AI_SEARCH_API_KEY",
|
|
"label": "Azure AI Search API Key",
|
|
"description": "You need to provide your API Key for Azure AI Search."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "OpenWeather",
|
|
"pluginKey": "open_weather",
|
|
"description": "Get weather forecasts and historical data from the OpenWeather API",
|
|
"icon": "assets/openweather.png",
|
|
"authConfig": [
|
|
{
|
|
"authField": "OPENWEATHER_API_KEY",
|
|
"label": "OpenWeather API Key",
|
|
"description": "Sign up at <a href=\"https://home.openweathermap.org/users/sign_up\" target=\"_blank\">OpenWeather</a>, then get your key at <a href=\"https://home.openweathermap.org/api_keys\" target=\"_blank\">API keys</a>."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flux",
|
|
"pluginKey": "flux",
|
|
"description": "Generate images using text with the Flux API.",
|
|
"icon": "assets/bfl-ai.svg",
|
|
"isAuthRequired": "true",
|
|
"authConfig": [
|
|
{
|
|
"authField": "FLUX_API_KEY",
|
|
"label": "Your Flux API Key",
|
|
"description": "Provide your Flux API key from your user profile."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Gemini Image Tools",
|
|
"pluginKey": "gemini_image_gen",
|
|
"description": "Generate high-quality images using Google's Gemini Image Models. Supports Gemini API or Vertex AI.",
|
|
"icon": "assets/gemini_image_gen.svg",
|
|
"authConfig": [
|
|
{
|
|
"authField": "GEMINI_API_KEY||GOOGLE_KEY||GOOGLE_SERVICE_KEY_FILE",
|
|
"label": "Gemini API Key (optional)",
|
|
"description": "Your Google Gemini API Key from <a href='https://aistudio.google.com/app/apikey' target='_blank'>Google AI Studio</a>. Leave blank to use Vertex AI with a service account (GOOGLE_SERVICE_KEY_FILE or api/data/auth.json).",
|
|
"optional": true
|
|
}
|
|
]
|
|
}
|
|
]
|