mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-09-22 06:00:56 +02:00
feat: Azure Cognitive Search Plugin (#815)
* feat(AzureCognitiveSearchPlugin) * feat(tools/AzureCognitiveSearch.js): Add a new plugin (not structured version) * feat(tools/structured/AzureCognitiveSearch.js): Add a new plugin (structured version) * feat(tools/manifest.json, tools/index.js, tools/util/handleTools.js): Add configurations for the plugin * feat(api/package.json, package-lock.json): Installed a new package for the plugin (@azure/search-documents) * feat(.env.example): Add new environment variables for the plugin Here is the link to the corresponding discussion page: https://github.com/danny-avila/LibreChat/discussions/567 * docs(AzureCognitiveSearchPlugin) * docs(features/plugins/azure_cognitive_search.md): Add a new document for the plugin * (fix:.env.example) * reverted extra whitespaces removed by the editor * docs(mkdocs.yml) * Add the Azure Cognitive Search Plugin's documentation item to mkdocs.yml.
This commit is contained in:
parent
3c7f67fa76
commit
61dcb4d307
10 changed files with 498 additions and 12 deletions
12
.env.example
12
.env.example
|
@ -147,6 +147,18 @@ GOOGLE_CSE_ID=
|
|||
# Use "http://127.0.0.1:7860" with local install and "http://host.docker.internal:7860" for docker
|
||||
SD_WEBUI_URL=http://host.docker.internal:7860
|
||||
|
||||
# Azure Cognitive Search
|
||||
# This plugin supports searching Azure Cognitive Search for answers to your questions.
|
||||
# See detailed instructions here: https://github.com/danny-avila/LibreChat/blob/main/docs/features/plugins/azure_cognitive_search.md
|
||||
AZURE_COGNITIVE_SEARCH_SERVICE_ENDPOINT=
|
||||
AZURE_COGNITIVE_SEARCH_INDEX_NAME=
|
||||
AZURE_COGNITIVE_SEARCH_API_KEY=
|
||||
|
||||
AZURE_COGNITIVE_SEARCH_API_VERSION=
|
||||
AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_QUERY_TYPE=
|
||||
AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_TOP=
|
||||
AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_SELECT=
|
||||
|
||||
##########################
|
||||
# PaLM (Google) Endpoint:
|
||||
##########################
|
||||
|
|
111
api/app/clients/tools/AzureCognitiveSearch.js
Normal file
111
api/app/clients/tools/AzureCognitiveSearch.js
Normal file
|
@ -0,0 +1,111 @@
|
|||
const { Tool } = require('langchain/tools');
|
||||
const { SearchClient, AzureKeyCredential } = require('@azure/search-documents');
|
||||
|
||||
class AzureCognitiveSearch extends Tool {
|
||||
constructor(fields = {}) {
|
||||
super();
|
||||
this.serviceEndpoint =
|
||||
fields.AZURE_COGNITIVE_SEARCH_SERVICE_ENDPOINT || this.getServiceEndpoint();
|
||||
this.indexName = fields.AZURE_COGNITIVE_SEARCH_INDEX_NAME || this.getIndexName();
|
||||
this.apiKey = fields.AZURE_COGNITIVE_SEARCH_API_KEY || this.getApiKey();
|
||||
|
||||
this.apiVersion = fields.AZURE_COGNITIVE_SEARCH_API_VERSION || this.getApiVersion();
|
||||
|
||||
this.queryType = fields.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_QUERY_TYPE || this.getQueryType();
|
||||
this.top = fields.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_TOP || this.getTop();
|
||||
this.select = fields.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_SELECT || this.getSelect();
|
||||
|
||||
this.client = new SearchClient(
|
||||
this.serviceEndpoint,
|
||||
this.indexName,
|
||||
new AzureKeyCredential(this.apiKey),
|
||||
{
|
||||
apiVersion: this.apiVersion,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* The name of the tool.
|
||||
* @type {string}
|
||||
*/
|
||||
name = 'azure-cognitive-search';
|
||||
|
||||
/**
|
||||
* A description for the agent to use
|
||||
* @type {string}
|
||||
*/
|
||||
description =
|
||||
'Use the \'azure-cognitive-search\' tool to retrieve search results relevant to your input';
|
||||
|
||||
getServiceEndpoint() {
|
||||
const serviceEndpoint = process.env.AZURE_COGNITIVE_SEARCH_SERVICE_ENDPOINT || '';
|
||||
if (!serviceEndpoint) {
|
||||
throw new Error('Missing AZURE_COGNITIVE_SEARCH_SERVICE_ENDPOINT environment variable.');
|
||||
}
|
||||
return serviceEndpoint;
|
||||
}
|
||||
|
||||
getIndexName() {
|
||||
const indexName = process.env.AZURE_COGNITIVE_SEARCH_INDEX_NAME || '';
|
||||
if (!indexName) {
|
||||
throw new Error('Missing AZURE_COGNITIVE_SEARCH_INDEX_NAME environment variable.');
|
||||
}
|
||||
return indexName;
|
||||
}
|
||||
|
||||
getApiKey() {
|
||||
const apiKey = process.env.AZURE_COGNITIVE_SEARCH_API_KEY || '';
|
||||
if (!apiKey) {
|
||||
throw new Error('Missing AZURE_COGNITIVE_SEARCH_API_KEY environment variable.');
|
||||
}
|
||||
return apiKey;
|
||||
}
|
||||
|
||||
getApiVersion() {
|
||||
return process.env.AZURE_COGNITIVE_SEARCH_API_VERSION || '2020-06-30';
|
||||
}
|
||||
|
||||
getQueryType() {
|
||||
return process.env.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_QUERY_TYPE || 'simple';
|
||||
}
|
||||
|
||||
getTop() {
|
||||
if (process.env.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_TOP) {
|
||||
return Number(process.env.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_TOP);
|
||||
} else {
|
||||
return 5;
|
||||
}
|
||||
}
|
||||
|
||||
getSelect() {
|
||||
if (process.env.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_SELECT) {
|
||||
return process.env.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_SELECT.split(',');
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async _call(query) {
|
||||
try {
|
||||
const searchOption = {
|
||||
queryType: this.queryType,
|
||||
top: this.top,
|
||||
};
|
||||
if (this.select) {
|
||||
searchOption.select = this.select;
|
||||
}
|
||||
const searchResults = await this.client.search(query, searchOption);
|
||||
const resultDocuments = [];
|
||||
for await (const result of searchResults.results) {
|
||||
resultDocuments.push(result.document);
|
||||
}
|
||||
return JSON.stringify(resultDocuments);
|
||||
} catch (error) {
|
||||
console.error(`Azure Cognitive Search request failed: ${error}`);
|
||||
return 'There was an error with Azure Cognitive Search.';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = AzureCognitiveSearch;
|
|
@ -7,6 +7,8 @@ const StableDiffusionAPI = require('./StableDiffusion');
|
|||
const WolframAlphaAPI = require('./Wolfram');
|
||||
const StructuredWolfram = require('./structured/Wolfram');
|
||||
const SelfReflectionTool = require('./SelfReflection');
|
||||
const AzureCognitiveSearch = require('./AzureCognitiveSearch');
|
||||
const StructuredACS = require('./structured/AzureCognitiveSearch');
|
||||
const availableTools = require('./manifest.json');
|
||||
|
||||
module.exports = {
|
||||
|
@ -20,4 +22,6 @@ module.exports = {
|
|||
WolframAlphaAPI,
|
||||
StructuredWolfram,
|
||||
SelfReflectionTool,
|
||||
AzureCognitiveSearch,
|
||||
StructuredACS,
|
||||
};
|
||||
|
|
|
@ -102,5 +102,28 @@
|
|||
"description": "You can use Zapier with your API Key from Zapier."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Azure Cognitive Search",
|
||||
"pluginKey": "azure-cognitive-search",
|
||||
"description": "Use Azure Cognitive Search to find information",
|
||||
"icon": "https://i.imgur.com/E7crPze.png",
|
||||
"authConfig": [
|
||||
{
|
||||
"authField": "AZURE_COGNITIVE_SEARCH_SERVICE_ENDPOINT",
|
||||
"label": "Azur Cognitive Search Endpoint",
|
||||
"description": "You need to provide your Endpoint for Azure Cognitive Search."
|
||||
},
|
||||
{
|
||||
"authField": "AZURE_COGNITIVE_SEARCH_INDEX_NAME",
|
||||
"label": "Azur Cognitive Search Index Name",
|
||||
"description": "You need to provide your Index Name for Azure Cognitive Search."
|
||||
},
|
||||
{
|
||||
"authField": "AZURE_COGNITIVE_SEARCH_API_KEY",
|
||||
"label": "Azur Cognitive Search API Key",
|
||||
"description": "You need to provideq your API Key for Azure Cognitive Search."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
116
api/app/clients/tools/structured/AzureCognitiveSearch.js
Normal file
116
api/app/clients/tools/structured/AzureCognitiveSearch.js
Normal file
|
@ -0,0 +1,116 @@
|
|||
const { StructuredTool } = require('langchain/tools');
|
||||
const { z } = require('zod');
|
||||
const { SearchClient, AzureKeyCredential } = require('@azure/search-documents');
|
||||
|
||||
class AzureCognitiveSearch extends StructuredTool {
|
||||
constructor(fields = {}) {
|
||||
super();
|
||||
this.serviceEndpoint =
|
||||
fields.AZURE_COGNITIVE_SEARCH_SERVICE_ENDPOINT || this.getServiceEndpoint();
|
||||
this.indexName = fields.AZURE_COGNITIVE_SEARCH_INDEX_NAME || this.getIndexName();
|
||||
this.apiKey = fields.AZURE_COGNITIVE_SEARCH_API_KEY || this.getApiKey();
|
||||
|
||||
this.apiVersion = fields.AZURE_COGNITIVE_SEARCH_API_VERSION || this.getApiVersion();
|
||||
|
||||
this.queryType = fields.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_QUERY_TYPE || this.getQueryType();
|
||||
this.top = fields.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_TOP || this.getTop();
|
||||
this.select = fields.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_SELECT || this.getSelect();
|
||||
|
||||
this.client = new SearchClient(
|
||||
this.serviceEndpoint,
|
||||
this.indexName,
|
||||
new AzureKeyCredential(this.apiKey),
|
||||
{
|
||||
apiVersion: this.apiVersion,
|
||||
},
|
||||
);
|
||||
this.schema = z.object({
|
||||
query: z.string().describe('Search word or phrase to Azure Cognitive Search'),
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* The name of the tool.
|
||||
* @type {string}
|
||||
*/
|
||||
name = 'azure-cognitive-search';
|
||||
|
||||
/**
|
||||
* A description for the agent to use
|
||||
* @type {string}
|
||||
*/
|
||||
description =
|
||||
'Use the \'azure-cognitive-search\' tool to retrieve search results relevant to your input';
|
||||
|
||||
getServiceEndpoint() {
|
||||
const serviceEndpoint = process.env.AZURE_COGNITIVE_SEARCH_SERVICE_ENDPOINT || '';
|
||||
if (!serviceEndpoint) {
|
||||
throw new Error('Missing AZURE_COGNITIVE_SEARCH_SERVICE_ENDPOINT environment variable.');
|
||||
}
|
||||
return serviceEndpoint;
|
||||
}
|
||||
|
||||
getIndexName() {
|
||||
const indexName = process.env.AZURE_COGNITIVE_SEARCH_INDEX_NAME || '';
|
||||
if (!indexName) {
|
||||
throw new Error('Missing AZURE_COGNITIVE_SEARCH_INDEX_NAME environment variable.');
|
||||
}
|
||||
return indexName;
|
||||
}
|
||||
|
||||
getApiKey() {
|
||||
const apiKey = process.env.AZURE_COGNITIVE_SEARCH_API_KEY || '';
|
||||
if (!apiKey) {
|
||||
throw new Error('Missing AZURE_COGNITIVE_SEARCH_API_KEY environment variable.');
|
||||
}
|
||||
return apiKey;
|
||||
}
|
||||
|
||||
getApiVersion() {
|
||||
return process.env.AZURE_COGNITIVE_SEARCH_API_VERSION || '2020-06-30';
|
||||
}
|
||||
|
||||
getQueryType() {
|
||||
return process.env.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_QUERY_TYPE || 'simple';
|
||||
}
|
||||
|
||||
getTop() {
|
||||
if (process.env.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_TOP) {
|
||||
return Number(process.env.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_TOP);
|
||||
} else {
|
||||
return 5;
|
||||
}
|
||||
}
|
||||
|
||||
getSelect() {
|
||||
if (process.env.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_SELECT) {
|
||||
return process.env.AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_SELECT.split(',');
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async _call(data) {
|
||||
const { query } = data;
|
||||
try {
|
||||
const searchOption = {
|
||||
queryType: this.queryType,
|
||||
top: this.top,
|
||||
};
|
||||
if (this.select) {
|
||||
searchOption.select = this.select;
|
||||
}
|
||||
const searchResults = await this.client.search(query, searchOption);
|
||||
const resultDocuments = [];
|
||||
for await (const result of searchResults.results) {
|
||||
resultDocuments.push(result.document);
|
||||
}
|
||||
return JSON.stringify(resultDocuments);
|
||||
} catch (error) {
|
||||
console.error(`Azure Cognitive Search request failed: ${error}`);
|
||||
return 'There was an error with Azure Cognitive Search.';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = AzureCognitiveSearch;
|
|
@ -15,6 +15,8 @@ const {
|
|||
OpenAICreateImage,
|
||||
StableDiffusionAPI,
|
||||
StructuredSD,
|
||||
AzureCognitiveSearch,
|
||||
StructuredACS,
|
||||
} = require('../');
|
||||
const { loadSpecs } = require('./loadSpecs');
|
||||
|
||||
|
@ -78,6 +80,7 @@ const loadTools = async ({ user, model, functions = null, tools = [], options =
|
|||
wolfram: functions ? StructuredWolfram : WolframAlphaAPI,
|
||||
'dall-e': OpenAICreateImage,
|
||||
'stable-diffusion': functions ? StructuredSD : StableDiffusionAPI,
|
||||
'azure-cognitive-search': functions ? StructuredACS : AzureCognitiveSearch,
|
||||
};
|
||||
|
||||
const customConstructors = {
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
"homepage": "https://github.com/danny-avila/LibreChat#readme",
|
||||
"dependencies": {
|
||||
"@anthropic-ai/sdk": "^0.5.4",
|
||||
"@azure/search-documents": "^11.3.2",
|
||||
"@dqbd/tiktoken": "^1.0.2",
|
||||
"@fortaine/fetch-event-source": "^3.0.6",
|
||||
"@keyv/mongo": "^2.1.8",
|
||||
|
|
57
docs/features/plugins/azure_cognitive_search.md
Normal file
57
docs/features/plugins/azure_cognitive_search.md
Normal file
|
@ -0,0 +1,57 @@
|
|||
# Azure Cognitive Search Plugin
|
||||
Through the plugins endpoint, you can use Azure Cognitive Search for answers to your questions with assistance from GPT.
|
||||
|
||||
## Configurations
|
||||
|
||||
### Required
|
||||
|
||||
To get started, you need to get a Azure Cognitive Search endpoint URL, index name, and a API Key. You can then define these as follows in your `.env` file:
|
||||
```env
|
||||
AZURE_COGNITIVE_SEARCH_SERVICE_ENDPOINT="..."
|
||||
AZURE_COGNITIVE_SEARCH_INDEX_NAME="..."
|
||||
AZURE_COGNITIVE_SEARCH_API_KEY="..."
|
||||
```
|
||||
|
||||
### AZURE_COGNITIVE_SEARCH_SERVICE_ENDPOINT
|
||||
|
||||
This is the URL of the search endpoint. It can be obtained from the top page of the search service in the Cognitive Search management console (e.g., 'https://example.search.windows.net').
|
||||
|
||||
### AZURE_COGNITIVE_SEARCH_INDEX_NAME
|
||||
|
||||
This is the name of the index to be searched (e.g., 'hotels-sample-index').
|
||||
|
||||
### AZURE_COGNITIVE_SEARCH_API_KEY
|
||||
|
||||
This is the authentication key to use when utilizing the search endpoint. Please issue it from the management console. Use the Value, not the name of the authentication key.
|
||||
|
||||
### Optional
|
||||
|
||||
The following are configuration values that are not required but can be specified as parameters during a search.
|
||||
|
||||
If there are concerns that the search result data may be too large and exceed the prompt size, consider reducing the size of the search result data by using AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_TOP and AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_SELECT.
|
||||
|
||||
For details on each parameter, please refer to the following document:
|
||||
https://learn.microsoft.com/en-us/rest/api/searchservice/search-documents
|
||||
|
||||
```env
|
||||
AZURE_COGNITIVE_SEARCH_API_VERSION=2023-07-01-Preview
|
||||
AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_QUERY_TYPE=simple
|
||||
AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_TOP=3
|
||||
AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_SELECT=field1,field2,field3
|
||||
```
|
||||
|
||||
#### AZURE_COGNITIVE_SEARCH_API_VERSION
|
||||
|
||||
Specify the version of the search API. When using new features such as semantic search, you may need to specify the preview version. The default value is '2020-06-30'.
|
||||
|
||||
#### AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_QUERY_TYPE
|
||||
|
||||
Specify 'simple' or 'full'. The default value is 'simple'.
|
||||
|
||||
#### AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_TOP
|
||||
|
||||
Specify the number of items to search for. The default value is 5.
|
||||
|
||||
#### AZURE_COGNITIVE_SEARCH_SEARCH_OPTION_SELECT
|
||||
|
||||
Specify the fields of the index to be retrieved, separated by commas. Please note that these are not the fields to be searched.
|
|
@ -98,6 +98,7 @@ nav:
|
|||
- Google: 'features/plugins/google_search.md'
|
||||
- Stable Diffusion: 'features/plugins/stable_diffusion.md'
|
||||
- Wolfram: 'features/plugins/wolfram.md'
|
||||
- Azure Cognitive Search: 'features/plugins/azure_cognitive_search.md'
|
||||
- Make Your Own Plugin: 'features/plugins/make_your_own.md'
|
||||
- Using official ChatGPT Plugins: 'features/plugins/chatgpt_plugins_openapi.md'
|
||||
- Proxy: 'features/proxy.md'
|
||||
|
|
166
package-lock.json
generated
166
package-lock.json
generated
|
@ -47,6 +47,7 @@
|
|||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@anthropic-ai/sdk": "^0.5.4",
|
||||
"@azure/search-documents": "^11.3.2",
|
||||
"@dqbd/tiktoken": "^1.0.2",
|
||||
"@fortaine/fetch-event-source": "^3.0.6",
|
||||
"@keyv/mongo": "^2.1.8",
|
||||
|
@ -875,6 +876,166 @@
|
|||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/abort-controller": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz",
|
||||
"integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==",
|
||||
"dependencies": {
|
||||
"tslib": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/core-auth": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.5.0.tgz",
|
||||
"integrity": "sha512-udzoBuYG1VBoHVohDTrvKjyzel34zt77Bhp7dQntVGGD0ehVq48owENbBG8fIgkHRNUBQH5k1r0hpoMu5L8+kw==",
|
||||
"dependencies": {
|
||||
"@azure/abort-controller": "^1.0.0",
|
||||
"@azure/core-util": "^1.1.0",
|
||||
"tslib": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/core-client": {
|
||||
"version": "1.7.3",
|
||||
"resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.7.3.tgz",
|
||||
"integrity": "sha512-kleJ1iUTxcO32Y06dH9Pfi9K4U+Tlb111WXEnbt7R/ne+NLRwppZiTGJuTD5VVoxTMK5NTbEtm5t2vcdNCFe2g==",
|
||||
"dependencies": {
|
||||
"@azure/abort-controller": "^1.0.0",
|
||||
"@azure/core-auth": "^1.4.0",
|
||||
"@azure/core-rest-pipeline": "^1.9.1",
|
||||
"@azure/core-tracing": "^1.0.0",
|
||||
"@azure/core-util": "^1.0.0",
|
||||
"@azure/logger": "^1.0.0",
|
||||
"tslib": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/core-http-compat": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@azure/core-http-compat/-/core-http-compat-1.3.0.tgz",
|
||||
"integrity": "sha512-ZN9avruqbQ5TxopzG3ih3KRy52n8OAbitX3fnZT5go4hzu0J+KVPSzkL+Wt3hpJpdG8WIfg1sBD1tWkgUdEpBA==",
|
||||
"dependencies": {
|
||||
"@azure/abort-controller": "^1.0.4",
|
||||
"@azure/core-client": "^1.3.0",
|
||||
"@azure/core-rest-pipeline": "^1.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/core-paging": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.5.0.tgz",
|
||||
"integrity": "sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==",
|
||||
"dependencies": {
|
||||
"tslib": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/core-rest-pipeline": {
|
||||
"version": "1.12.0",
|
||||
"resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.12.0.tgz",
|
||||
"integrity": "sha512-+MnSB0vGZjszSzr5AW8z93/9fkDu2RLtWmAN8gskURq7EW2sSwqy8jZa0V26rjuBVkwhdA3Hw8z3VWoeBUOw+A==",
|
||||
"dependencies": {
|
||||
"@azure/abort-controller": "^1.0.0",
|
||||
"@azure/core-auth": "^1.4.0",
|
||||
"@azure/core-tracing": "^1.0.1",
|
||||
"@azure/core-util": "^1.3.0",
|
||||
"@azure/logger": "^1.0.0",
|
||||
"form-data": "^4.0.0",
|
||||
"http-proxy-agent": "^5.0.0",
|
||||
"https-proxy-agent": "^5.0.0",
|
||||
"tslib": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/core-rest-pipeline/node_modules/agent-base": {
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
|
||||
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
|
||||
"dependencies": {
|
||||
"debug": "4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/core-rest-pipeline/node_modules/https-proxy-agent": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
|
||||
"integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
|
||||
"dependencies": {
|
||||
"agent-base": "6",
|
||||
"debug": "4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/core-tracing": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.1.tgz",
|
||||
"integrity": "sha512-I5CGMoLtX+pI17ZdiFJZgxMJApsK6jjfm85hpgp3oazCdq5Wxgh4wMr7ge/TTWW1B5WBuvIOI1fMU/FrOAMKrw==",
|
||||
"dependencies": {
|
||||
"tslib": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/core-util": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.4.0.tgz",
|
||||
"integrity": "sha512-eGAyJpm3skVQoLiRqm/xPa+SXi/NPDdSHMxbRAz2lSprd+Zs+qrpQGQQ2VQ3Nttu+nSZR4XoYQC71LbEI7jsig==",
|
||||
"dependencies": {
|
||||
"@azure/abort-controller": "^1.0.0",
|
||||
"tslib": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/logger": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.4.tgz",
|
||||
"integrity": "sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==",
|
||||
"dependencies": {
|
||||
"tslib": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/search-documents": {
|
||||
"version": "11.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@azure/search-documents/-/search-documents-11.3.2.tgz",
|
||||
"integrity": "sha512-pJBY/DF+G2PJzUFGu+MvBcHWgXMg4QceoTSoMvelPi/g9ynVxjjHYUdlP2aei8/L7nOpFnbTmC5iKNIRCNbnGw==",
|
||||
"dependencies": {
|
||||
"@azure/core-auth": "^1.3.0",
|
||||
"@azure/core-client": "^1.3.0",
|
||||
"@azure/core-http-compat": "^1.2.0",
|
||||
"@azure/core-paging": "^1.1.1",
|
||||
"@azure/core-rest-pipeline": "^1.3.0",
|
||||
"@azure/core-tracing": "^1.0.0",
|
||||
"@azure/logger": "^1.0.0",
|
||||
"events": "^3.0.0",
|
||||
"tslib": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/cli": {
|
||||
"version": "7.22.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.22.10.tgz",
|
||||
|
@ -7181,7 +7342,6 @@
|
|||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
|
||||
"integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
|
@ -13655,7 +13815,6 @@
|
|||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
|
||||
"integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@tootallnate/once": "2",
|
||||
"agent-base": "6",
|
||||
|
@ -13669,7 +13828,6 @@
|
|||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
|
||||
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"debug": "4"
|
||||
},
|
||||
|
@ -26273,7 +26431,7 @@
|
|||
},
|
||||
"packages/data-provider": {
|
||||
"name": "librechat-data-provider",
|
||||
"version": "0.1.4",
|
||||
"version": "0.1.5",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@tanstack/react-query": "^4.28.0",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue