langchain 0.0.129 → 0.0.131
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/dist/agents/chat/index.cjs +3 -0
- package/dist/agents/chat/index.d.ts +1 -0
- package/dist/agents/chat/index.js +3 -0
- package/dist/agents/chat_convo/index.cjs +3 -0
- package/dist/agents/chat_convo/index.d.ts +1 -0
- package/dist/agents/chat_convo/index.js +3 -0
- package/dist/agents/executor.cjs +3 -0
- package/dist/agents/executor.d.ts +1 -0
- package/dist/agents/executor.js +3 -0
- package/dist/agents/mrkl/index.cjs +3 -0
- package/dist/agents/mrkl/index.d.ts +1 -0
- package/dist/agents/mrkl/index.js +3 -0
- package/dist/agents/openai/index.cjs +3 -0
- package/dist/agents/openai/index.d.ts +1 -0
- package/dist/agents/openai/index.js +3 -0
- package/dist/agents/structured_chat/index.cjs +3 -0
- package/dist/agents/structured_chat/index.d.ts +1 -0
- package/dist/agents/structured_chat/index.js +3 -0
- package/dist/callbacks/base.cjs +18 -0
- package/dist/callbacks/base.d.ts +15 -0
- package/dist/callbacks/base.js +19 -1
- package/dist/callbacks/manager.cjs +1 -1
- package/dist/callbacks/manager.js +1 -1
- package/dist/chains/analyze_documents_chain.cjs +3 -0
- package/dist/chains/analyze_documents_chain.d.ts +1 -0
- package/dist/chains/analyze_documents_chain.js +3 -0
- package/dist/chains/combine_docs_chain.cjs +9 -0
- package/dist/chains/combine_docs_chain.d.ts +3 -0
- package/dist/chains/combine_docs_chain.js +9 -0
- package/dist/chains/constitutional_ai/constitutional_chain.cjs +3 -0
- package/dist/chains/constitutional_ai/constitutional_chain.d.ts +1 -0
- package/dist/chains/constitutional_ai/constitutional_chain.js +3 -0
- package/dist/chains/conversation.cjs +3 -0
- package/dist/chains/conversation.d.ts +1 -0
- package/dist/chains/conversation.js +3 -0
- package/dist/chains/conversational_retrieval_chain.cjs +3 -0
- package/dist/chains/conversational_retrieval_chain.d.ts +1 -0
- package/dist/chains/conversational_retrieval_chain.js +3 -0
- package/dist/chains/llm_chain.cjs +3 -0
- package/dist/chains/llm_chain.d.ts +1 -0
- package/dist/chains/llm_chain.js +3 -0
- package/dist/chains/openai_functions/openapi.cjs +3 -0
- package/dist/chains/openai_functions/openapi.js +3 -0
- package/dist/chains/openai_moderation.cjs +3 -0
- package/dist/chains/openai_moderation.d.ts +1 -0
- package/dist/chains/openai_moderation.js +3 -0
- package/dist/chains/retrieval_qa.cjs +3 -0
- package/dist/chains/retrieval_qa.d.ts +1 -0
- package/dist/chains/retrieval_qa.js +3 -0
- package/dist/chains/router/multi_route.cjs +3 -0
- package/dist/chains/router/multi_route.d.ts +1 -0
- package/dist/chains/router/multi_route.js +3 -0
- package/dist/chains/sequential_chain.cjs +6 -0
- package/dist/chains/sequential_chain.d.ts +2 -0
- package/dist/chains/sequential_chain.js +6 -0
- package/dist/chains/sql_db/sql_db_chain.cjs +3 -0
- package/dist/chains/sql_db/sql_db_chain.d.ts +1 -0
- package/dist/chains/sql_db/sql_db_chain.js +3 -0
- package/dist/chains/transform.cjs +3 -0
- package/dist/chains/transform.d.ts +1 -0
- package/dist/chains/transform.js +3 -0
- package/dist/chains/vector_db_qa.cjs +3 -0
- package/dist/chains/vector_db_qa.d.ts +1 -0
- package/dist/chains/vector_db_qa.js +3 -0
- package/dist/chat_models/anthropic.cjs +3 -0
- package/dist/chat_models/anthropic.d.ts +1 -0
- package/dist/chat_models/anthropic.js +3 -0
- package/dist/chat_models/baiduwenxin.cjs +3 -13
- package/dist/chat_models/baiduwenxin.d.ts +1 -3
- package/dist/chat_models/baiduwenxin.js +3 -13
- package/dist/chat_models/googlepalm.cjs +9 -0
- package/dist/chat_models/googlepalm.d.ts +2 -0
- package/dist/chat_models/googlepalm.js +9 -0
- package/dist/chat_models/googlevertexai.cjs +9 -0
- package/dist/chat_models/googlevertexai.d.ts +2 -0
- package/dist/chat_models/googlevertexai.js +9 -0
- package/dist/chat_models/ollama.cjs +3 -0
- package/dist/chat_models/ollama.d.ts +1 -0
- package/dist/chat_models/ollama.js +3 -0
- package/dist/chat_models/openai.cjs +19 -5
- package/dist/chat_models/openai.d.ts +7 -5
- package/dist/chat_models/openai.js +19 -5
- package/dist/document_loaders/web/youtube.cjs +77 -0
- package/dist/document_loaders/web/youtube.d.ts +17 -0
- package/dist/document_loaders/web/youtube.js +73 -0
- package/dist/document_transformers/html_to_text.cjs +3 -0
- package/dist/document_transformers/html_to_text.d.ts +1 -0
- package/dist/document_transformers/html_to_text.js +3 -0
- package/dist/document_transformers/mozilla_readability.cjs +3 -0
- package/dist/document_transformers/mozilla_readability.d.ts +1 -0
- package/dist/document_transformers/mozilla_readability.js +3 -0
- package/dist/document_transformers/openai_functions.cjs +3 -0
- package/dist/document_transformers/openai_functions.d.ts +1 -0
- package/dist/document_transformers/openai_functions.js +3 -0
- package/dist/embeddings/cohere.cjs +16 -13
- package/dist/embeddings/cohere.js +16 -13
- package/dist/embeddings/googlevertexai.cjs +1 -1
- package/dist/embeddings/googlevertexai.js +1 -1
- package/dist/embeddings/openai.cjs +27 -21
- package/dist/embeddings/openai.js +27 -21
- package/dist/evaluation/qa/eval_chain.cjs +3 -0
- package/dist/evaluation/qa/eval_chain.d.ts +1 -0
- package/dist/evaluation/qa/eval_chain.js +3 -0
- package/dist/experimental/babyagi/agent.cjs +3 -0
- package/dist/experimental/babyagi/agent.d.ts +1 -0
- package/dist/experimental/babyagi/agent.js +3 -0
- package/dist/experimental/babyagi/task_creation.cjs +3 -0
- package/dist/experimental/babyagi/task_creation.d.ts +1 -0
- package/dist/experimental/babyagi/task_creation.js +3 -0
- package/dist/experimental/babyagi/task_execution.cjs +3 -0
- package/dist/experimental/babyagi/task_execution.d.ts +1 -0
- package/dist/experimental/babyagi/task_execution.js +3 -0
- package/dist/experimental/babyagi/task_prioritization.cjs +3 -0
- package/dist/experimental/babyagi/task_prioritization.d.ts +1 -0
- package/dist/experimental/babyagi/task_prioritization.js +3 -0
- package/dist/experimental/generative_agents/generative_agent.cjs +3 -0
- package/dist/experimental/generative_agents/generative_agent.d.ts +1 -0
- package/dist/experimental/generative_agents/generative_agent.js +3 -0
- package/dist/experimental/generative_agents/generative_agent_memory.cjs +3 -0
- package/dist/experimental/generative_agents/generative_agent_memory.d.ts +1 -0
- package/dist/experimental/generative_agents/generative_agent_memory.js +3 -0
- package/dist/experimental/plan_and_execute/agent_executor.cjs +3 -0
- package/dist/experimental/plan_and_execute/agent_executor.d.ts +1 -0
- package/dist/experimental/plan_and_execute/agent_executor.js +3 -0
- package/dist/llms/cohere.cjs +3 -0
- package/dist/llms/cohere.d.ts +1 -0
- package/dist/llms/cohere.js +3 -0
- package/dist/llms/ollama.cjs +3 -0
- package/dist/llms/ollama.d.ts +1 -0
- package/dist/llms/ollama.js +3 -0
- package/dist/llms/openai-chat.cjs +18 -4
- package/dist/llms/openai-chat.d.ts +6 -4
- package/dist/llms/openai-chat.js +18 -4
- package/dist/llms/openai.cjs +20 -6
- package/dist/llms/openai.d.ts +5 -3
- package/dist/llms/openai.js +20 -6
- package/dist/llms/replicate.cjs +3 -0
- package/dist/llms/replicate.d.ts +1 -0
- package/dist/llms/replicate.js +3 -0
- package/dist/load/import_constants.cjs +1 -0
- package/dist/load/import_constants.js +1 -0
- package/dist/load/index.cjs +7 -1
- package/dist/load/index.js +7 -1
- package/dist/load/serializable.cjs +42 -3
- package/dist/load/serializable.d.ts +16 -0
- package/dist/load/serializable.js +40 -2
- package/dist/output_parsers/combining.cjs +3 -0
- package/dist/output_parsers/combining.d.ts +1 -0
- package/dist/output_parsers/combining.js +3 -0
- package/dist/output_parsers/fix.cjs +3 -0
- package/dist/output_parsers/fix.d.ts +1 -0
- package/dist/output_parsers/fix.js +3 -0
- package/dist/output_parsers/list.cjs +3 -0
- package/dist/output_parsers/list.d.ts +1 -0
- package/dist/output_parsers/list.js +3 -0
- package/dist/output_parsers/noop.cjs +3 -0
- package/dist/output_parsers/noop.d.ts +1 -0
- package/dist/output_parsers/noop.js +3 -0
- package/dist/output_parsers/openai_functions.cjs +9 -0
- package/dist/output_parsers/openai_functions.d.ts +3 -0
- package/dist/output_parsers/openai_functions.js +9 -0
- package/dist/output_parsers/regex.cjs +3 -0
- package/dist/output_parsers/regex.d.ts +1 -0
- package/dist/output_parsers/regex.js +3 -0
- package/dist/output_parsers/structured.cjs +6 -0
- package/dist/output_parsers/structured.d.ts +2 -0
- package/dist/output_parsers/structured.js +6 -0
- package/dist/prompts/chat.cjs +21 -0
- package/dist/prompts/chat.d.ts +7 -0
- package/dist/prompts/chat.js +21 -0
- package/dist/prompts/pipeline.cjs +3 -0
- package/dist/prompts/pipeline.d.ts +1 -0
- package/dist/prompts/pipeline.js +3 -0
- package/dist/prompts/prompt.cjs +3 -0
- package/dist/prompts/prompt.d.ts +1 -0
- package/dist/prompts/prompt.js +3 -0
- package/dist/retrievers/amazon_kendra.cjs +3 -0
- package/dist/retrievers/amazon_kendra.d.ts +1 -0
- package/dist/retrievers/amazon_kendra.js +3 -0
- package/dist/retrievers/contextual_compression.cjs +3 -0
- package/dist/retrievers/contextual_compression.d.ts +1 -0
- package/dist/retrievers/contextual_compression.js +3 -0
- package/dist/retrievers/databerry.cjs +3 -0
- package/dist/retrievers/databerry.d.ts +1 -0
- package/dist/retrievers/databerry.js +3 -0
- package/dist/retrievers/hyde.cjs +3 -0
- package/dist/retrievers/hyde.d.ts +1 -0
- package/dist/retrievers/hyde.js +3 -0
- package/dist/retrievers/metal.cjs +3 -0
- package/dist/retrievers/metal.d.ts +1 -0
- package/dist/retrievers/metal.js +3 -0
- package/dist/retrievers/parent_document.cjs +3 -0
- package/dist/retrievers/parent_document.d.ts +1 -0
- package/dist/retrievers/parent_document.js +3 -0
- package/dist/retrievers/self_query/index.cjs +3 -0
- package/dist/retrievers/self_query/index.d.ts +1 -0
- package/dist/retrievers/self_query/index.js +3 -0
- package/dist/retrievers/self_query/supabase.cjs +28 -7
- package/dist/retrievers/self_query/supabase.d.ts +2 -2
- package/dist/retrievers/self_query/supabase.js +29 -8
- package/dist/retrievers/self_query/supabase_utils.cjs +177 -0
- package/dist/retrievers/self_query/supabase_utils.d.ts +24 -0
- package/dist/retrievers/self_query/supabase_utils.js +172 -0
- package/dist/retrievers/self_query/utils.cjs +19 -3
- package/dist/retrievers/self_query/utils.d.ts +3 -0
- package/dist/retrievers/self_query/utils.js +15 -2
- package/dist/retrievers/self_query/weaviate.cjs +3 -14
- package/dist/retrievers/self_query/weaviate.js +1 -12
- package/dist/retrievers/supabase.cjs +3 -0
- package/dist/retrievers/supabase.d.ts +1 -0
- package/dist/retrievers/supabase.js +3 -0
- package/dist/retrievers/time_weighted.cjs +3 -0
- package/dist/retrievers/time_weighted.d.ts +1 -0
- package/dist/retrievers/time_weighted.js +3 -0
- package/dist/retrievers/vespa.cjs +3 -0
- package/dist/retrievers/vespa.d.ts +1 -0
- package/dist/retrievers/vespa.js +3 -0
- package/dist/retrievers/zep.cjs +3 -0
- package/dist/retrievers/zep.d.ts +1 -0
- package/dist/retrievers/zep.js +3 -0
- package/dist/schema/index.cjs +32 -2
- package/dist/schema/index.d.ts +14 -0
- package/dist/schema/index.js +32 -2
- package/dist/schema/output_parser.cjs +6 -0
- package/dist/schema/output_parser.d.ts +2 -0
- package/dist/schema/output_parser.js +6 -0
- package/dist/schema/runnable.cjs +25 -7
- package/dist/schema/runnable.d.ts +6 -0
- package/dist/schema/runnable.js +25 -7
- package/dist/stores/message/utils.cjs +5 -0
- package/dist/stores/message/utils.js +6 -1
- package/dist/text_splitter.cjs +9 -0
- package/dist/text_splitter.d.ts +3 -0
- package/dist/text_splitter.js +9 -0
- package/dist/tools/IFTTTWebhook.cjs +3 -0
- package/dist/tools/IFTTTWebhook.d.ts +1 -0
- package/dist/tools/IFTTTWebhook.js +3 -0
- package/dist/tools/aiplugin.cjs +3 -0
- package/dist/tools/aiplugin.d.ts +1 -0
- package/dist/tools/aiplugin.js +3 -0
- package/dist/tools/aws_sfn.cjs +9 -0
- package/dist/tools/aws_sfn.d.ts +3 -0
- package/dist/tools/aws_sfn.js +9 -0
- package/dist/tools/bingserpapi.cjs +3 -0
- package/dist/tools/bingserpapi.d.ts +1 -0
- package/dist/tools/bingserpapi.js +3 -0
- package/dist/tools/brave_search.cjs +3 -0
- package/dist/tools/brave_search.d.ts +1 -0
- package/dist/tools/brave_search.js +3 -0
- package/dist/tools/calculator.cjs +3 -0
- package/dist/tools/calculator.d.ts +1 -0
- package/dist/tools/calculator.js +3 -0
- package/dist/tools/chain.cjs +3 -0
- package/dist/tools/chain.d.ts +1 -0
- package/dist/tools/chain.js +3 -0
- package/dist/tools/dadjokeapi.cjs +3 -0
- package/dist/tools/dadjokeapi.d.ts +1 -0
- package/dist/tools/dadjokeapi.js +3 -0
- package/dist/tools/dataforseo_api_search.cjs +3 -0
- package/dist/tools/dataforseo_api_search.d.ts +1 -0
- package/dist/tools/dataforseo_api_search.js +3 -0
- package/dist/tools/dynamic.cjs +6 -0
- package/dist/tools/dynamic.d.ts +2 -0
- package/dist/tools/dynamic.js +6 -0
- package/dist/tools/fs.cjs +6 -0
- package/dist/tools/fs.d.ts +2 -0
- package/dist/tools/fs.js +6 -0
- package/dist/tools/google_custom_search.cjs +3 -0
- package/dist/tools/google_custom_search.d.ts +1 -0
- package/dist/tools/google_custom_search.js +3 -0
- package/dist/tools/json.cjs +7 -1
- package/dist/tools/json.d.ts +2 -0
- package/dist/tools/json.js +7 -1
- package/dist/tools/requests.cjs +8 -2
- package/dist/tools/requests.d.ts +2 -0
- package/dist/tools/requests.js +8 -2
- package/dist/tools/searxng_search.cjs +3 -0
- package/dist/tools/searxng_search.d.ts +1 -0
- package/dist/tools/searxng_search.js +3 -0
- package/dist/tools/serpapi.cjs +3 -0
- package/dist/tools/serpapi.d.ts +1 -0
- package/dist/tools/serpapi.js +3 -0
- package/dist/tools/serper.cjs +3 -0
- package/dist/tools/serper.d.ts +1 -0
- package/dist/tools/serper.js +3 -0
- package/dist/tools/sql.cjs +12 -0
- package/dist/tools/sql.d.ts +4 -0
- package/dist/tools/sql.js +12 -0
- package/dist/tools/vectorstore.cjs +3 -0
- package/dist/tools/vectorstore.d.ts +1 -0
- package/dist/tools/vectorstore.js +3 -0
- package/dist/tools/webbrowser.cjs +3 -0
- package/dist/tools/webbrowser.d.ts +1 -0
- package/dist/tools/webbrowser.js +3 -0
- package/dist/tools/wikipedia_query_run.cjs +3 -0
- package/dist/tools/wikipedia_query_run.d.ts +1 -0
- package/dist/tools/wikipedia_query_run.js +3 -0
- package/dist/tools/zapier.cjs +3 -0
- package/dist/tools/zapier.d.ts +1 -0
- package/dist/tools/zapier.js +3 -0
- package/dist/vectorstores/base.cjs +3 -0
- package/dist/vectorstores/base.d.ts +1 -0
- package/dist/vectorstores/base.js +3 -0
- package/dist/vectorstores/elasticsearch.cjs +1 -0
- package/dist/vectorstores/elasticsearch.js +1 -0
- package/dist/vectorstores/hnswlib.cjs +19 -0
- package/dist/vectorstores/hnswlib.d.ts +3 -0
- package/dist/vectorstores/hnswlib.js +19 -0
- package/dist/vectorstores/myscale.cjs +1 -1
- package/dist/vectorstores/myscale.js +1 -1
- package/dist/vectorstores/supabase.d.ts +1 -2
- package/document_loaders/web/youtube.cjs +1 -0
- package/document_loaders/web/youtube.d.ts +1 -0
- package/document_loaders/web/youtube.js +1 -0
- package/package.json +27 -3
|
@@ -10,6 +10,7 @@ export type PipelinePromptTemplateInput<PromptTemplateType extends BasePromptTem
|
|
|
10
10
|
finalPrompt: PromptTemplateType;
|
|
11
11
|
};
|
|
12
12
|
export declare class PipelinePromptTemplate<PromptTemplateType extends BasePromptTemplate> extends BasePromptTemplate {
|
|
13
|
+
static lc_name(): string;
|
|
13
14
|
pipelinePrompts: PipelinePromptParams<PromptTemplateType>[];
|
|
14
15
|
finalPrompt: PromptTemplateType;
|
|
15
16
|
constructor(input: PipelinePromptTemplateInput<PromptTemplateType>);
|
package/dist/prompts/pipeline.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { BasePromptTemplate } from "./base.js";
|
|
2
2
|
import { ChatPromptTemplate } from "./chat.js";
|
|
3
3
|
export class PipelinePromptTemplate extends BasePromptTemplate {
|
|
4
|
+
static lc_name() {
|
|
5
|
+
return "PipelinePromptTemplate";
|
|
6
|
+
}
|
|
4
7
|
constructor(input) {
|
|
5
8
|
super({ ...input, inputVariables: [] });
|
|
6
9
|
Object.defineProperty(this, "pipelinePrompts", {
|
package/dist/prompts/prompt.cjs
CHANGED
|
@@ -21,6 +21,9 @@ const template_js_1 = require("./template.cjs");
|
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
23
|
class PromptTemplate extends base_js_1.BaseStringPromptTemplate {
|
|
24
|
+
static lc_name() {
|
|
25
|
+
return "PromptTemplate";
|
|
26
|
+
}
|
|
24
27
|
constructor(input) {
|
|
25
28
|
super(input);
|
|
26
29
|
Object.defineProperty(this, "template", {
|
package/dist/prompts/prompt.d.ts
CHANGED
|
@@ -40,6 +40,7 @@ export interface PromptTemplateInput<RunInput extends InputValues = any, Partial
|
|
|
40
40
|
* ```
|
|
41
41
|
*/
|
|
42
42
|
export declare class PromptTemplate<RunInput extends InputValues = any, PartialVariableName extends string = any> extends BaseStringPromptTemplate<RunInput, PartialVariableName> implements PromptTemplateInput<RunInput, PartialVariableName> {
|
|
43
|
+
static lc_name(): string;
|
|
43
44
|
template: string;
|
|
44
45
|
templateFormat: TemplateFormat;
|
|
45
46
|
validateTemplate: boolean;
|
package/dist/prompts/prompt.js
CHANGED
|
@@ -18,6 +18,9 @@ import { checkValidTemplate, parseTemplate, renderTemplate, } from "./template.j
|
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
20
|
export class PromptTemplate extends BaseStringPromptTemplate {
|
|
21
|
+
static lc_name() {
|
|
22
|
+
return "PromptTemplate";
|
|
23
|
+
}
|
|
21
24
|
constructor(input) {
|
|
22
25
|
super(input);
|
|
23
26
|
Object.defineProperty(this, "template", {
|
|
@@ -5,6 +5,9 @@ const client_kendra_1 = require("@aws-sdk/client-kendra");
|
|
|
5
5
|
const retriever_js_1 = require("../schema/retriever.cjs");
|
|
6
6
|
const document_js_1 = require("../document.cjs");
|
|
7
7
|
class AmazonKendraRetriever extends retriever_js_1.BaseRetriever {
|
|
8
|
+
static lc_name() {
|
|
9
|
+
return "AmazonKendraRetriever";
|
|
10
|
+
}
|
|
8
11
|
constructor({ indexId, topK = 10, clientOptions, attributeFilter, region, }) {
|
|
9
12
|
super();
|
|
10
13
|
Object.defineProperty(this, "lc_namespace", {
|
|
@@ -2,6 +2,9 @@ import { KendraClient, QueryCommand, RetrieveCommand, } from "@aws-sdk/client-ke
|
|
|
2
2
|
import { BaseRetriever } from "../schema/retriever.js";
|
|
3
3
|
import { Document } from "../document.js";
|
|
4
4
|
export class AmazonKendraRetriever extends BaseRetriever {
|
|
5
|
+
static lc_name() {
|
|
6
|
+
return "AmazonKendraRetriever";
|
|
7
|
+
}
|
|
5
8
|
constructor({ indexId, topK = 10, clientOptions, attributeFilter, region, }) {
|
|
6
9
|
super();
|
|
7
10
|
Object.defineProperty(this, "lc_namespace", {
|
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ContextualCompressionRetriever = void 0;
|
|
4
4
|
const retriever_js_1 = require("../schema/retriever.cjs");
|
|
5
5
|
class ContextualCompressionRetriever extends retriever_js_1.BaseRetriever {
|
|
6
|
+
static lc_name() {
|
|
7
|
+
return "ContextualCompressionRetriever";
|
|
8
|
+
}
|
|
6
9
|
constructor(fields) {
|
|
7
10
|
super(fields);
|
|
8
11
|
Object.defineProperty(this, "lc_namespace", {
|
|
@@ -7,6 +7,7 @@ export interface ContextualCompressionRetrieverArgs extends BaseRetrieverInput {
|
|
|
7
7
|
baseRetriever: BaseRetriever;
|
|
8
8
|
}
|
|
9
9
|
export declare class ContextualCompressionRetriever extends BaseRetriever {
|
|
10
|
+
static lc_name(): string;
|
|
10
11
|
lc_namespace: string[];
|
|
11
12
|
baseCompressor: BaseDocumentCompressor;
|
|
12
13
|
baseRetriever: BaseRetriever;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { BaseRetriever } from "../schema/retriever.js";
|
|
2
2
|
export class ContextualCompressionRetriever extends BaseRetriever {
|
|
3
|
+
static lc_name() {
|
|
4
|
+
return "ContextualCompressionRetriever";
|
|
5
|
+
}
|
|
3
6
|
constructor(fields) {
|
|
4
7
|
super(fields);
|
|
5
8
|
Object.defineProperty(this, "lc_namespace", {
|
|
@@ -5,6 +5,9 @@ const retriever_js_1 = require("../schema/retriever.cjs");
|
|
|
5
5
|
const document_js_1 = require("../document.cjs");
|
|
6
6
|
const async_caller_js_1 = require("../util/async_caller.cjs");
|
|
7
7
|
class DataberryRetriever extends retriever_js_1.BaseRetriever {
|
|
8
|
+
static lc_name() {
|
|
9
|
+
return "DataberryRetriever";
|
|
10
|
+
}
|
|
8
11
|
get lc_secrets() {
|
|
9
12
|
return { apiKey: "DATABERRY_API_KEY" };
|
|
10
13
|
}
|
|
@@ -7,6 +7,7 @@ export interface DataberryRetrieverArgs extends AsyncCallerParams, BaseRetriever
|
|
|
7
7
|
apiKey?: string;
|
|
8
8
|
}
|
|
9
9
|
export declare class DataberryRetriever extends BaseRetriever {
|
|
10
|
+
static lc_name(): string;
|
|
10
11
|
lc_namespace: string[];
|
|
11
12
|
get lc_secrets(): {
|
|
12
13
|
apiKey: string;
|
|
@@ -2,6 +2,9 @@ import { BaseRetriever } from "../schema/retriever.js";
|
|
|
2
2
|
import { Document } from "../document.js";
|
|
3
3
|
import { AsyncCaller } from "../util/async_caller.js";
|
|
4
4
|
export class DataberryRetriever extends BaseRetriever {
|
|
5
|
+
static lc_name() {
|
|
6
|
+
return "DataberryRetriever";
|
|
7
|
+
}
|
|
5
8
|
get lc_secrets() {
|
|
6
9
|
return { apiKey: "DATABERRY_API_KEY" };
|
|
7
10
|
}
|
package/dist/retrievers/hyde.cjs
CHANGED
|
@@ -5,6 +5,9 @@ const base_js_1 = require("../prompts/base.cjs");
|
|
|
5
5
|
const prompt_js_1 = require("../prompts/prompt.cjs");
|
|
6
6
|
const base_js_2 = require("../vectorstores/base.cjs");
|
|
7
7
|
class HydeRetriever extends base_js_2.VectorStoreRetriever {
|
|
8
|
+
static lc_name() {
|
|
9
|
+
return "HydeRetriever";
|
|
10
|
+
}
|
|
8
11
|
get lc_namespace() {
|
|
9
12
|
return ["langchain", "retrievers", "hyde"];
|
|
10
13
|
}
|
|
@@ -9,6 +9,7 @@ export type HydeRetrieverOptions<V extends VectorStore> = VectorStoreRetrieverIn
|
|
|
9
9
|
promptTemplate?: BasePromptTemplate | PromptKey;
|
|
10
10
|
};
|
|
11
11
|
export declare class HydeRetriever<V extends VectorStore = VectorStore> extends VectorStoreRetriever<V> {
|
|
12
|
+
static lc_name(): string;
|
|
12
13
|
get lc_namespace(): string[];
|
|
13
14
|
llm: BaseLanguageModel;
|
|
14
15
|
promptTemplate?: BasePromptTemplate;
|
package/dist/retrievers/hyde.js
CHANGED
|
@@ -2,6 +2,9 @@ import { StringPromptValue } from "../prompts/base.js";
|
|
|
2
2
|
import { PromptTemplate } from "../prompts/prompt.js";
|
|
3
3
|
import { VectorStoreRetriever, } from "../vectorstores/base.js";
|
|
4
4
|
export class HydeRetriever extends VectorStoreRetriever {
|
|
5
|
+
static lc_name() {
|
|
6
|
+
return "HydeRetriever";
|
|
7
|
+
}
|
|
5
8
|
get lc_namespace() {
|
|
6
9
|
return ["langchain", "retrievers", "hyde"];
|
|
7
10
|
}
|
|
@@ -4,6 +4,9 @@ exports.MetalRetriever = void 0;
|
|
|
4
4
|
const retriever_js_1 = require("../schema/retriever.cjs");
|
|
5
5
|
const document_js_1 = require("../document.cjs");
|
|
6
6
|
class MetalRetriever extends retriever_js_1.BaseRetriever {
|
|
7
|
+
static lc_name() {
|
|
8
|
+
return "MetalRetriever";
|
|
9
|
+
}
|
|
7
10
|
constructor(fields) {
|
|
8
11
|
super(fields);
|
|
9
12
|
Object.defineProperty(this, "lc_namespace", {
|
package/dist/retrievers/metal.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { BaseRetriever } from "../schema/retriever.js";
|
|
2
2
|
import { Document } from "../document.js";
|
|
3
3
|
export class MetalRetriever extends BaseRetriever {
|
|
4
|
+
static lc_name() {
|
|
5
|
+
return "MetalRetriever";
|
|
6
|
+
}
|
|
4
7
|
constructor(fields) {
|
|
5
8
|
super(fields);
|
|
6
9
|
Object.defineProperty(this, "lc_namespace", {
|
|
@@ -28,6 +28,9 @@ const uuid = __importStar(require("uuid"));
|
|
|
28
28
|
const retriever_js_1 = require("../schema/retriever.cjs");
|
|
29
29
|
const document_js_1 = require("../document.cjs");
|
|
30
30
|
class ParentDocumentRetriever extends retriever_js_1.BaseRetriever {
|
|
31
|
+
static lc_name() {
|
|
32
|
+
return "ParentDocumentRetriever";
|
|
33
|
+
}
|
|
31
34
|
constructor(fields) {
|
|
32
35
|
super(fields);
|
|
33
36
|
Object.defineProperty(this, "lc_namespace", {
|
|
@@ -11,6 +11,7 @@ export interface ParentDocumentRetrieverFields extends BaseRetrieverInput {
|
|
|
11
11
|
idKey?: string;
|
|
12
12
|
}
|
|
13
13
|
export declare class ParentDocumentRetriever extends BaseRetriever {
|
|
14
|
+
static lc_name(): string;
|
|
14
15
|
lc_namespace: string[];
|
|
15
16
|
protected vectorstore: VectorStore;
|
|
16
17
|
protected docstore: Docstore;
|
|
@@ -2,6 +2,9 @@ import * as uuid from "uuid";
|
|
|
2
2
|
import { BaseRetriever } from "../schema/retriever.js";
|
|
3
3
|
import { Document } from "../document.js";
|
|
4
4
|
export class ParentDocumentRetriever extends BaseRetriever {
|
|
5
|
+
static lc_name() {
|
|
6
|
+
return "ParentDocumentRetriever";
|
|
7
|
+
}
|
|
5
8
|
constructor(fields) {
|
|
6
9
|
super(fields);
|
|
7
10
|
Object.defineProperty(this, "lc_namespace", {
|
|
@@ -9,6 +9,9 @@ const base_js_1 = require("./base.cjs");
|
|
|
9
9
|
Object.defineProperty(exports, "BaseTranslator", { enumerable: true, get: function () { return base_js_1.BaseTranslator; } });
|
|
10
10
|
Object.defineProperty(exports, "BasicTranslator", { enumerable: true, get: function () { return base_js_1.BasicTranslator; } });
|
|
11
11
|
class SelfQueryRetriever extends retriever_js_1.BaseRetriever {
|
|
12
|
+
static lc_name() {
|
|
13
|
+
return "SelfQueryRetriever";
|
|
14
|
+
}
|
|
12
15
|
get lc_namespace() {
|
|
13
16
|
return ["langchain", "retrievers", "self_query"];
|
|
14
17
|
}
|
|
@@ -20,6 +20,7 @@ export interface SelfQueryRetrieverArgs<T extends VectorStore> extends BaseRetri
|
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
export declare class SelfQueryRetriever<T extends VectorStore> extends BaseRetriever implements SelfQueryRetrieverArgs<T> {
|
|
23
|
+
static lc_name(): string;
|
|
23
24
|
get lc_namespace(): string[];
|
|
24
25
|
vectorStore: T;
|
|
25
26
|
llmChain: LLMChain;
|
|
@@ -4,6 +4,9 @@ import { FunctionalTranslator } from "./functional.js";
|
|
|
4
4
|
import { BaseTranslator, BasicTranslator } from "./base.js";
|
|
5
5
|
export { BaseTranslator, BasicTranslator, FunctionalTranslator };
|
|
6
6
|
export class SelfQueryRetriever extends BaseRetriever {
|
|
7
|
+
static lc_name() {
|
|
8
|
+
return "SelfQueryRetriever";
|
|
9
|
+
}
|
|
7
10
|
get lc_namespace() {
|
|
8
11
|
return ["langchain", "retrievers", "self_query"];
|
|
9
12
|
}
|
|
@@ -4,6 +4,7 @@ exports.SupabaseTranslator = void 0;
|
|
|
4
4
|
const ir_js_1 = require("../../chains/query_constructor/ir.cjs");
|
|
5
5
|
const base_js_1 = require("./base.cjs");
|
|
6
6
|
const utils_js_1 = require("./utils.cjs");
|
|
7
|
+
const supabase_utils_js_1 = require("./supabase_utils.cjs");
|
|
7
8
|
class SupabaseTranslator extends base_js_1.BaseTranslator {
|
|
8
9
|
constructor() {
|
|
9
10
|
super(...arguments);
|
|
@@ -57,12 +58,15 @@ class SupabaseTranslator extends base_js_1.BaseTranslator {
|
|
|
57
58
|
}
|
|
58
59
|
buildColumnName(attr, value, includeType = true) {
|
|
59
60
|
let column = "";
|
|
60
|
-
if (
|
|
61
|
+
if ((0, utils_js_1.isString)(value)) {
|
|
61
62
|
column = `metadata->>${attr}`;
|
|
62
63
|
}
|
|
63
|
-
else if (
|
|
64
|
+
else if ((0, utils_js_1.isInt)(value)) {
|
|
64
65
|
column = `metadata->${attr}${includeType ? "::int" : ""}`;
|
|
65
66
|
}
|
|
67
|
+
else if ((0, utils_js_1.isFloat)(value)) {
|
|
68
|
+
column = `metadata->${attr}${includeType ? "::float" : ""}`;
|
|
69
|
+
}
|
|
66
70
|
else {
|
|
67
71
|
throw new Error("Data type not supported");
|
|
68
72
|
}
|
|
@@ -146,9 +150,6 @@ class SupabaseTranslator extends base_js_1.BaseTranslator {
|
|
|
146
150
|
return { filter: filterFunction ?? {} };
|
|
147
151
|
}
|
|
148
152
|
mergeFilters(defaultFilter, generatedFilter, mergeType = "and") {
|
|
149
|
-
if (mergeType === "or") {
|
|
150
|
-
throw new Error("Supabase self-query filter does not support merging two filters with the OR operator");
|
|
151
|
-
}
|
|
152
153
|
if ((0, utils_js_1.isFilterEmpty)(defaultFilter) && (0, utils_js_1.isFilterEmpty)(generatedFilter)) {
|
|
153
154
|
return undefined;
|
|
154
155
|
}
|
|
@@ -164,8 +165,28 @@ class SupabaseTranslator extends base_js_1.BaseTranslator {
|
|
|
164
165
|
}
|
|
165
166
|
return defaultFilter;
|
|
166
167
|
}
|
|
167
|
-
|
|
168
|
-
|
|
168
|
+
let myDefaultFilter = defaultFilter;
|
|
169
|
+
if ((0, utils_js_1.isObject)(defaultFilter)) {
|
|
170
|
+
const { filter } = this.visitStructuredQuery((0, supabase_utils_js_1.convertObjectFilterToStructuredQuery)(defaultFilter));
|
|
171
|
+
// just in case the built filter is empty somehow
|
|
172
|
+
if ((0, utils_js_1.isFilterEmpty)(filter)) {
|
|
173
|
+
if ((0, utils_js_1.isFilterEmpty)(generatedFilter)) {
|
|
174
|
+
return undefined;
|
|
175
|
+
}
|
|
176
|
+
return generatedFilter;
|
|
177
|
+
}
|
|
178
|
+
myDefaultFilter = filter;
|
|
179
|
+
}
|
|
180
|
+
// After this point, myDefaultFilter will always be SupabaseFilterRPCCall
|
|
181
|
+
if (mergeType === "or") {
|
|
182
|
+
return (rpc) => {
|
|
183
|
+
const defaultFlattenedParams = supabase_utils_js_1.ProxyParamsDuplicator.getFlattenedParams(rpc, myDefaultFilter);
|
|
184
|
+
const generatedFlattenedParams = supabase_utils_js_1.ProxyParamsDuplicator.getFlattenedParams(rpc, generatedFilter);
|
|
185
|
+
return rpc.or(`${defaultFlattenedParams},${generatedFlattenedParams}`);
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
else if (mergeType === "and") {
|
|
189
|
+
return (rpc) => generatedFilter(myDefaultFilter(rpc));
|
|
169
190
|
}
|
|
170
191
|
else {
|
|
171
192
|
throw new Error("Unknown merge type");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Comparator, Comparison, Operation, Operator, StructuredQuery } from "../../chains/query_constructor/ir.js";
|
|
2
|
-
import { SupabaseFilterRPCCall, SupabaseVectorStore } from "../../vectorstores/supabase.js";
|
|
2
|
+
import type { SupabaseFilterRPCCall, SupabaseMetadata, SupabaseVectorStore } from "../../vectorstores/supabase.js";
|
|
3
3
|
import { BaseTranslator } from "./base.js";
|
|
4
4
|
type ValueType = {
|
|
5
5
|
eq: string | number;
|
|
@@ -22,6 +22,6 @@ export declare class SupabaseTranslator<T extends SupabaseVectorStore> extends B
|
|
|
22
22
|
visitComparisonAsString(comparison: Comparison): string;
|
|
23
23
|
visitComparison(comparison: Comparison): this["VisitComparisonOutput"];
|
|
24
24
|
visitStructuredQuery(query: StructuredQuery): this["VisitStructuredQueryOutput"];
|
|
25
|
-
mergeFilters(defaultFilter: SupabaseFilterRPCCall | undefined, generatedFilter: SupabaseFilterRPCCall | undefined, mergeType?: string): SupabaseFilterRPCCall | undefined;
|
|
25
|
+
mergeFilters(defaultFilter: SupabaseFilterRPCCall | SupabaseMetadata | undefined, generatedFilter: SupabaseFilterRPCCall | undefined, mergeType?: string): SupabaseFilterRPCCall | SupabaseMetadata | undefined;
|
|
26
26
|
}
|
|
27
27
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Comparators, Operators, } from "../../chains/query_constructor/ir.js";
|
|
2
2
|
import { BaseTranslator } from "./base.js";
|
|
3
|
-
import { isFilterEmpty } from "./utils.js";
|
|
3
|
+
import { isFilterEmpty, isFloat, isInt, isObject, isString } from "./utils.js";
|
|
4
|
+
import { ProxyParamsDuplicator, convertObjectFilterToStructuredQuery, } from "./supabase_utils.js";
|
|
4
5
|
export class SupabaseTranslator extends BaseTranslator {
|
|
5
6
|
constructor() {
|
|
6
7
|
super(...arguments);
|
|
@@ -54,12 +55,15 @@ export class SupabaseTranslator extends BaseTranslator {
|
|
|
54
55
|
}
|
|
55
56
|
buildColumnName(attr, value, includeType = true) {
|
|
56
57
|
let column = "";
|
|
57
|
-
if (
|
|
58
|
+
if (isString(value)) {
|
|
58
59
|
column = `metadata->>${attr}`;
|
|
59
60
|
}
|
|
60
|
-
else if (
|
|
61
|
+
else if (isInt(value)) {
|
|
61
62
|
column = `metadata->${attr}${includeType ? "::int" : ""}`;
|
|
62
63
|
}
|
|
64
|
+
else if (isFloat(value)) {
|
|
65
|
+
column = `metadata->${attr}${includeType ? "::float" : ""}`;
|
|
66
|
+
}
|
|
63
67
|
else {
|
|
64
68
|
throw new Error("Data type not supported");
|
|
65
69
|
}
|
|
@@ -143,9 +147,6 @@ export class SupabaseTranslator extends BaseTranslator {
|
|
|
143
147
|
return { filter: filterFunction ?? {} };
|
|
144
148
|
}
|
|
145
149
|
mergeFilters(defaultFilter, generatedFilter, mergeType = "and") {
|
|
146
|
-
if (mergeType === "or") {
|
|
147
|
-
throw new Error("Supabase self-query filter does not support merging two filters with the OR operator");
|
|
148
|
-
}
|
|
149
150
|
if (isFilterEmpty(defaultFilter) && isFilterEmpty(generatedFilter)) {
|
|
150
151
|
return undefined;
|
|
151
152
|
}
|
|
@@ -161,8 +162,28 @@ export class SupabaseTranslator extends BaseTranslator {
|
|
|
161
162
|
}
|
|
162
163
|
return defaultFilter;
|
|
163
164
|
}
|
|
164
|
-
|
|
165
|
-
|
|
165
|
+
let myDefaultFilter = defaultFilter;
|
|
166
|
+
if (isObject(defaultFilter)) {
|
|
167
|
+
const { filter } = this.visitStructuredQuery(convertObjectFilterToStructuredQuery(defaultFilter));
|
|
168
|
+
// just in case the built filter is empty somehow
|
|
169
|
+
if (isFilterEmpty(filter)) {
|
|
170
|
+
if (isFilterEmpty(generatedFilter)) {
|
|
171
|
+
return undefined;
|
|
172
|
+
}
|
|
173
|
+
return generatedFilter;
|
|
174
|
+
}
|
|
175
|
+
myDefaultFilter = filter;
|
|
176
|
+
}
|
|
177
|
+
// After this point, myDefaultFilter will always be SupabaseFilterRPCCall
|
|
178
|
+
if (mergeType === "or") {
|
|
179
|
+
return (rpc) => {
|
|
180
|
+
const defaultFlattenedParams = ProxyParamsDuplicator.getFlattenedParams(rpc, myDefaultFilter);
|
|
181
|
+
const generatedFlattenedParams = ProxyParamsDuplicator.getFlattenedParams(rpc, generatedFilter);
|
|
182
|
+
return rpc.or(`${defaultFlattenedParams},${generatedFlattenedParams}`);
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
else if (mergeType === "and") {
|
|
186
|
+
return (rpc) => generatedFilter(myDefaultFilter(rpc));
|
|
166
187
|
}
|
|
167
188
|
else {
|
|
168
189
|
throw new Error("Unknown merge type");
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertObjectFilterToStructuredQuery = exports.ProxyParamsDuplicator = void 0;
|
|
4
|
+
const ir_js_1 = require("../../chains/query_constructor/ir.cjs");
|
|
5
|
+
class ProxyParamsDuplicator {
|
|
6
|
+
constructor() {
|
|
7
|
+
Object.defineProperty(this, "duplicationAllowedOps", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true,
|
|
11
|
+
value: [
|
|
12
|
+
"eq",
|
|
13
|
+
"neq",
|
|
14
|
+
"lt",
|
|
15
|
+
"lte",
|
|
16
|
+
"gt",
|
|
17
|
+
"gte",
|
|
18
|
+
"like",
|
|
19
|
+
"ilike",
|
|
20
|
+
"or",
|
|
21
|
+
"in",
|
|
22
|
+
"contains",
|
|
23
|
+
"match",
|
|
24
|
+
"not",
|
|
25
|
+
"textSearch",
|
|
26
|
+
"filter",
|
|
27
|
+
]
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(this, "values", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
configurable: true,
|
|
32
|
+
writable: true,
|
|
33
|
+
value: []
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
buildProxyHandler() {
|
|
37
|
+
const proxyHandler = {
|
|
38
|
+
get: (target, prop, receiver) => {
|
|
39
|
+
if (typeof target[prop] === "function") {
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
+
return (...args) => {
|
|
42
|
+
if (this.duplicationAllowedOps.includes(String(prop))) {
|
|
43
|
+
switch (String(prop)) {
|
|
44
|
+
case "or":
|
|
45
|
+
// args[0]: filters, args[1]: { foreignTable }
|
|
46
|
+
this.addOrClause(args[0], args[1]);
|
|
47
|
+
break;
|
|
48
|
+
case "filter":
|
|
49
|
+
// args[0]: column, args[1]: operator, args[2]: value
|
|
50
|
+
this.addFilterClause(args[0], args[1], args[2]);
|
|
51
|
+
break;
|
|
52
|
+
case "in":
|
|
53
|
+
// args[0]: column, args[1]: values
|
|
54
|
+
this.addInClause(args[0], args[1]);
|
|
55
|
+
break;
|
|
56
|
+
case "contains":
|
|
57
|
+
// args[0]: column, args[1]: value
|
|
58
|
+
this.addContainsClause(args[0], args[1]);
|
|
59
|
+
break;
|
|
60
|
+
case "textSearch":
|
|
61
|
+
// args[0]: column, args[1]: query, args[2]: { config, type }
|
|
62
|
+
this.addTextSearchClause(args[0], args[1], args[2]);
|
|
63
|
+
break;
|
|
64
|
+
case "match":
|
|
65
|
+
// args[0]: query
|
|
66
|
+
this.addMatchClause(args[0]);
|
|
67
|
+
break;
|
|
68
|
+
case "not":
|
|
69
|
+
// args[0]: column, args[1]: operator, args[2]: value
|
|
70
|
+
this.addNotClause(args[0], args[1], args[2]);
|
|
71
|
+
break;
|
|
72
|
+
default:
|
|
73
|
+
// args[0]: column, args[1]: value
|
|
74
|
+
this.addDefaultOpClause(prop, args[0], args[1]);
|
|
75
|
+
}
|
|
76
|
+
return new Proxy(target, proxyHandler);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
throw new Error("Filter operation not supported for 'or' mergeFiltersOperator");
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return Reflect.get(target, prop, receiver);
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
return proxyHandler;
|
|
89
|
+
}
|
|
90
|
+
removeType(value) {
|
|
91
|
+
let cleanedValue = value;
|
|
92
|
+
if (cleanedValue.includes("::float")) {
|
|
93
|
+
cleanedValue = cleanedValue.replace("::float", "");
|
|
94
|
+
}
|
|
95
|
+
if (cleanedValue.includes("::int")) {
|
|
96
|
+
cleanedValue = cleanedValue.replace("::int", "");
|
|
97
|
+
}
|
|
98
|
+
return cleanedValue;
|
|
99
|
+
}
|
|
100
|
+
addDefaultOpClause(prop, column, value) {
|
|
101
|
+
this.values.push([this.removeType(column), `${String(prop)}.${value}`]);
|
|
102
|
+
}
|
|
103
|
+
addOrClause(filters, { foreignTable } = {}) {
|
|
104
|
+
const key = foreignTable ? `${foreignTable}.or` : "or";
|
|
105
|
+
this.values.push([this.removeType(key), `(${filters})`]);
|
|
106
|
+
}
|
|
107
|
+
addFilterClause(column, operator, value) {
|
|
108
|
+
this.values.push([this.removeType(column), `${operator}.${value}`]);
|
|
109
|
+
}
|
|
110
|
+
addInClause(column, values) {
|
|
111
|
+
const cleanedValues = values
|
|
112
|
+
.map((s) => {
|
|
113
|
+
if (typeof s === "string" && /[,()]/.test(s))
|
|
114
|
+
return `"${s}"`;
|
|
115
|
+
else
|
|
116
|
+
return `${s}`;
|
|
117
|
+
})
|
|
118
|
+
.join(",");
|
|
119
|
+
this.values.push([this.removeType(column), `in.(${cleanedValues})`]);
|
|
120
|
+
}
|
|
121
|
+
addContainsClause(column, value) {
|
|
122
|
+
if (typeof value === "string") {
|
|
123
|
+
this.values.push([this.removeType(column), `cs.${value}`]);
|
|
124
|
+
}
|
|
125
|
+
else if (Array.isArray(value)) {
|
|
126
|
+
this.values.push([this.removeType(column), `cs.{${value.join(",")}}`]);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
this.values.push([
|
|
130
|
+
this.removeType(column),
|
|
131
|
+
`cs.${JSON.stringify(value)}`,
|
|
132
|
+
]);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
addTextSearchClause(column, query, { config, type, } = {}) {
|
|
136
|
+
let typePart = "";
|
|
137
|
+
if (type === "plain") {
|
|
138
|
+
typePart = "pl";
|
|
139
|
+
}
|
|
140
|
+
else if (type === "phrase") {
|
|
141
|
+
typePart = "ph";
|
|
142
|
+
}
|
|
143
|
+
else if (type === "websearch") {
|
|
144
|
+
typePart = "w";
|
|
145
|
+
}
|
|
146
|
+
const configPart = config === undefined ? "" : `(${config})`;
|
|
147
|
+
this.values.push([
|
|
148
|
+
this.removeType(column),
|
|
149
|
+
`${typePart}fts${configPart}.${query}`,
|
|
150
|
+
]);
|
|
151
|
+
}
|
|
152
|
+
addNotClause(column, operator, value) {
|
|
153
|
+
this.values.push([column, `not.${operator}.${value}`]);
|
|
154
|
+
}
|
|
155
|
+
addMatchClause(query) {
|
|
156
|
+
Object.entries(query).forEach(([column, value]) => {
|
|
157
|
+
this.values.push([column, `eq.${value}`]);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
flattenedParams() {
|
|
161
|
+
const mapped = this.values.map(([k, v]) => `${k}.${v}`);
|
|
162
|
+
if (mapped.length === 1)
|
|
163
|
+
return mapped[0];
|
|
164
|
+
return `and(${mapped.join(",")})`;
|
|
165
|
+
}
|
|
166
|
+
static getFlattenedParams(rpc, filter) {
|
|
167
|
+
const proxiedDuplicator = new ProxyParamsDuplicator();
|
|
168
|
+
const proxiedRpc = new Proxy(rpc, proxiedDuplicator.buildProxyHandler());
|
|
169
|
+
void filter(proxiedRpc);
|
|
170
|
+
return proxiedDuplicator.flattenedParams();
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
exports.ProxyParamsDuplicator = ProxyParamsDuplicator;
|
|
174
|
+
function convertObjectFilterToStructuredQuery(objFilter) {
|
|
175
|
+
return new ir_js_1.StructuredQuery("", new ir_js_1.Operation(ir_js_1.Operators.and, Object.entries(objFilter).map(([column, value]) => new ir_js_1.Comparison(ir_js_1.Comparators.eq, column, value))));
|
|
176
|
+
}
|
|
177
|
+
exports.convertObjectFilterToStructuredQuery = convertObjectFilterToStructuredQuery;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { StructuredQuery } from "../../chains/query_constructor/ir.js";
|
|
2
|
+
import type { SupabaseFilter, SupabaseFilterRPCCall, SupabaseMetadata } from "../../vectorstores/supabase.js";
|
|
3
|
+
export declare class ProxyParamsDuplicator {
|
|
4
|
+
duplicationAllowedOps: string[];
|
|
5
|
+
values: [string, string][];
|
|
6
|
+
buildProxyHandler(): ProxyHandler<SupabaseFilter>;
|
|
7
|
+
removeType(value: string): string;
|
|
8
|
+
addDefaultOpClause(prop: string, column: string, value: unknown): void;
|
|
9
|
+
addOrClause(filters: string, { foreignTable }?: {
|
|
10
|
+
foreignTable?: string;
|
|
11
|
+
}): void;
|
|
12
|
+
addFilterClause(column: string, operator: string, value: unknown): void;
|
|
13
|
+
addInClause(column: string, values: unknown[]): void;
|
|
14
|
+
addContainsClause(column: string, value: unknown): void;
|
|
15
|
+
addTextSearchClause(column: string, query: string[], { config, type, }?: {
|
|
16
|
+
config?: string;
|
|
17
|
+
type?: "plain" | "phrase" | "websearch";
|
|
18
|
+
}): void;
|
|
19
|
+
addNotClause(column: string, operator: string, value: unknown): void;
|
|
20
|
+
addMatchClause(query: Record<string, unknown>): void;
|
|
21
|
+
flattenedParams(): string;
|
|
22
|
+
static getFlattenedParams(rpc: SupabaseFilter, filter: SupabaseFilterRPCCall): string;
|
|
23
|
+
}
|
|
24
|
+
export declare function convertObjectFilterToStructuredQuery(objFilter: SupabaseMetadata): StructuredQuery;
|