langchain 0.0.24 → 0.0.26
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/agent.d.ts +1 -1
- package/dist/agents/agent.js.map +1 -1
- package/dist/agents/agent_toolkits/sql/sql.d.ts +2 -1
- package/dist/agents/agent_toolkits/sql/sql.js.map +1 -1
- package/dist/agents/chat/index.d.ts +41 -0
- package/dist/agents/chat/index.js +99 -0
- package/dist/agents/chat/index.js.map +1 -0
- package/dist/agents/chat/prompt.d.ts +3 -0
- package/dist/agents/chat/prompt.js +26 -0
- package/dist/agents/chat/prompt.js.map +1 -0
- package/dist/agents/helpers.d.ts +2 -2
- package/dist/agents/helpers.js.map +1 -1
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/index.js +1 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/initialize.d.ts +2 -2
- package/dist/agents/initialize.js +7 -0
- package/dist/agents/initialize.js.map +1 -1
- package/dist/agents/mrkl/index.d.ts +3 -3
- package/dist/agents/mrkl/index.js.map +1 -1
- package/dist/agents/tests/sql.test.js +64 -40
- package/dist/agents/tests/sql.test.js.map +1 -1
- package/dist/agents/tools/calculator.js +1 -2
- package/dist/agents/tools/calculator.js.map +1 -1
- package/dist/agents/tools/index.d.ts +1 -1
- package/dist/agents/tools/index.js +1 -1
- package/dist/agents/tools/index.js.map +1 -1
- package/dist/agents/tools/json.d.ts +1 -3
- package/dist/agents/tools/json.js +3 -1
- package/dist/agents/tools/json.js.map +1 -1
- package/dist/agents/tools/sql.d.ts +1 -9
- package/dist/agents/tools/sql.js +4 -74
- package/dist/agents/tools/sql.js.map +1 -1
- package/dist/chains/base.d.ts +2 -1
- package/dist/chains/base.js.map +1 -1
- package/dist/chains/chat_vector_db_chain.js +2 -2
- package/dist/chains/chat_vector_db_chain.js.map +1 -1
- package/dist/chains/index.d.ts +2 -1
- package/dist/chains/index.js +2 -1
- package/dist/chains/index.js.map +1 -1
- package/dist/chains/prompt_selector.d.ts +21 -0
- package/dist/chains/prompt_selector.js +38 -0
- package/dist/chains/prompt_selector.js.map +1 -0
- package/dist/chains/question_answering/load.d.ts +9 -0
- package/dist/chains/question_answering/load.js +22 -2
- package/dist/chains/question_answering/load.js.map +1 -1
- package/dist/chains/question_answering/map_reduce_prompts.d.ts +3 -0
- package/dist/chains/question_answering/map_reduce_prompts.js +22 -1
- package/dist/chains/question_answering/map_reduce_prompts.js.map +1 -1
- package/dist/chains/question_answering/stuff_prompts.d.ts +2 -0
- package/dist/chains/question_answering/stuff_prompts.js +12 -1
- package/dist/chains/question_answering/stuff_prompts.js.map +1 -1
- package/dist/chains/question_answering/tests/load.int.test.js +5 -5
- package/dist/chains/question_answering/tests/load.int.test.js.map +1 -1
- package/dist/chains/sql_db/sql_db_chain.d.ts +32 -0
- package/dist/chains/sql_db/sql_db_chain.js +130 -0
- package/dist/chains/sql_db/sql_db_chain.js.map +1 -0
- package/dist/chains/sql_db/sql_db_prompt.d.ts +2 -0
- package/dist/chains/sql_db/sql_db_prompt.js +24 -0
- package/dist/chains/sql_db/sql_db_prompt.js.map +1 -0
- package/dist/chains/summarization/tests/load.int.test.js +1 -1
- package/dist/chains/summarization/tests/load.int.test.js.map +1 -1
- package/dist/chains/tests/combine_docs_chain.int.test.js +2 -2
- package/dist/chains/tests/combine_docs_chain.int.test.js.map +1 -1
- package/dist/chains/tests/combine_docs_chain.test.js +2 -2
- package/dist/chains/tests/combine_docs_chain.test.js.map +1 -1
- package/dist/chains/tests/sql_db_chain.int.test.js +36 -0
- package/dist/chains/tests/sql_db_chain.int.test.js.map +1 -0
- package/dist/chains/vector_db_qa.js +3 -4
- package/dist/chains/vector_db_qa.js.map +1 -1
- package/dist/chat_models/index.d.ts +1 -0
- package/dist/chat_models/index.js +1 -0
- package/dist/chat_models/index.js.map +1 -1
- package/dist/chat_models/openai.d.ts +2 -0
- package/dist/document_loaders/index.d.ts +2 -0
- package/dist/document_loaders/index.js +2 -0
- package/dist/document_loaders/index.js.map +1 -1
- package/dist/document_loaders/notion_markdown.d.ts +4 -0
- package/dist/document_loaders/notion_markdown.js +10 -0
- package/dist/document_loaders/notion_markdown.js.map +1 -0
- package/dist/document_loaders/puppeteer_web_base.d.ts +26 -0
- package/dist/document_loaders/puppeteer_web_base.js +60 -0
- package/dist/document_loaders/puppeteer_web_base.js.map +1 -0
- package/dist/document_loaders/tests/notion_markdown.test.d.ts +1 -0
- package/dist/document_loaders/tests/notion_markdown.test.js +12 -0
- package/dist/document_loaders/tests/notion_markdown.test.js.map +1 -0
- package/dist/document_loaders/tests/puppeteer_web.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/puppeteer_web.int.test.js +29 -0
- package/dist/document_loaders/tests/puppeteer_web.int.test.js.map +1 -0
- package/dist/embeddings/index.d.ts +1 -0
- package/dist/embeddings/index.js +1 -0
- package/dist/embeddings/index.js.map +1 -1
- package/dist/llms/openai-chat.d.ts +2 -0
- package/dist/prompts/base.d.ts +8 -0
- package/dist/prompts/base.js +2 -0
- package/dist/prompts/base.js.map +1 -1
- package/dist/prompts/few_shot.d.ts +8 -11
- package/dist/prompts/few_shot.js +6 -6
- package/dist/prompts/few_shot.js.map +1 -1
- package/dist/prompts/index.d.ts +3 -1
- package/dist/prompts/index.js +3 -1
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/selectors/LengthBasedExampleSelector.d.ts +20 -0
- package/dist/prompts/selectors/LengthBasedExampleSelector.js +77 -0
- package/dist/prompts/selectors/LengthBasedExampleSelector.js.map +1 -0
- package/dist/prompts/selectors/SemanticSimilarityExampleSelector.d.ts +22 -0
- package/dist/prompts/selectors/SemanticSimilarityExampleSelector.js +74 -0
- package/dist/prompts/selectors/SemanticSimilarityExampleSelector.js.map +1 -0
- package/dist/prompts/tests/few_shot.test.js +21 -0
- package/dist/prompts/tests/few_shot.test.js.map +1 -1
- package/dist/prompts/tests/selectors.test.d.ts +1 -0
- package/dist/prompts/tests/selectors.test.js +36 -0
- package/dist/prompts/tests/selectors.test.js.map +1 -0
- package/dist/sql_db.d.ts +31 -0
- package/dist/sql_db.js +112 -0
- package/dist/sql_db.js.map +1 -0
- package/dist/tests/sql_database.int.test.d.ts +1 -0
- package/dist/tests/sql_database.int.test.js +77 -0
- package/dist/tests/sql_database.int.test.js.map +1 -0
- package/dist/util/sql_utils.d.ts +29 -0
- package/dist/util/sql_utils.js +123 -0
- package/dist/util/sql_utils.js.map +1 -0
- package/dist/util/tests/sql_utils.test.d.ts +1 -0
- package/dist/util/tests/sql_utils.test.js +41 -0
- package/dist/util/tests/sql_utils.test.js.map +1 -0
- package/dist/vectorstores/base.d.ts +2 -0
- package/dist/vectorstores/base.js +5 -0
- package/dist/vectorstores/base.js.map +1 -1
- package/dist/vectorstores/chroma.d.ts +4 -1
- package/dist/vectorstores/chroma.js +2 -2
- package/dist/vectorstores/chroma.js.map +1 -1
- package/dist/vectorstores/hnswlib.d.ts +3 -1
- package/dist/vectorstores/hnswlib.js +2 -1
- package/dist/vectorstores/hnswlib.js.map +1 -1
- package/dist/vectorstores/pinecone.d.ts +5 -1
- package/dist/vectorstores/pinecone.js +3 -2
- package/dist/vectorstores/pinecone.js.map +1 -1
- package/dist/vectorstores/supabase.d.ts +3 -1
- package/dist/vectorstores/supabase.js +13 -3
- package/dist/vectorstores/supabase.js.map +1 -1
- package/package.json +14 -1
- package/sql_db.d.ts +1 -0
- package/sql_db.js +1 -0
- package/dist/embeddings/cohere.js +0 -2
- package/dist/embeddings/cohere.js.map +0 -1
- /package/dist/{embeddings/cohere.d.ts → chains/tests/sql_db_chain.int.test.d.ts} +0 -0
package/dist/agents/agent.d.ts
CHANGED
|
@@ -71,7 +71,7 @@ export declare abstract class Agent {
|
|
|
71
71
|
/**
|
|
72
72
|
* Construct a scratchpad to let the agent continue its thought process
|
|
73
73
|
*/
|
|
74
|
-
|
|
74
|
+
constructScratchPad(steps: AgentStep[]): string;
|
|
75
75
|
private _plan;
|
|
76
76
|
/**
|
|
77
77
|
* Decide what to do given some input.
|
package/dist/agents/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agents/agent.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,GAOd,MAAM,YAAY,CAAC;AAKpB,MAAM,UAAW,SAAQ,KAAK;IAG5B,YAAY,GAAW,EAAE,MAAc;QACrC,KAAK,CAAC,GAAG,CAAC,CAAC;QAHb;;;;;WAAe;QAIb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAyBD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAI,CAAI,EAAE,EAAE,GAAE,CAAC,CAAC;AAShD;;;;;;GAMG;AACH,MAAM,OAAgB,KAAK;IAOzB,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC;IACzE,CAAC;IAED,YAAY,KAAiB;QAV7B;;;;;WAAmB;QAEnB;;;;mBAA0B,SAAS;WAAC;QAEpC;;;;mBAAe,CAAC,QAAQ,CAAC;WAAC;QAOxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACzC,CAAC;IAwBD;;OAEG;IACH,iBAAiB,KAAU,CAAC;IAE5B;;OAEG;IACH,0CAA0C;IAC1C,MAAM,CAAC,aAAa,CAAC,CAAS,IAAS,CAAC;IAExC,KAAK;QACH,OAAO,CAAC,KAAK,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agents/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Tool
|
|
1
|
+
import { Tool } from "../../tools/index.js";
|
|
2
2
|
import { Toolkit } from "../base.js";
|
|
3
3
|
import { BaseLLM } from "../../../llms/index.js";
|
|
4
4
|
import { CreatePromptArgs } from "../../mrkl/index.js";
|
|
5
5
|
import { AgentExecutor } from "../../executor.js";
|
|
6
|
+
import { SqlDatabase } from "../../../sql_db.js";
|
|
6
7
|
type SqlCreatePromptArgs = {
|
|
7
8
|
/** Number of results to return. */
|
|
8
9
|
topK?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../../src/agents/agent_toolkits/sql/sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,
|
|
1
|
+
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../../src/agents/agent_toolkits/sql/sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAQlD,MAAM,OAAO,UAAW,SAAQ,OAAO;IAOrC,YAAY,EAAe;QACzB,KAAK,EAAE,CAAC;QAPV;;;;;WAAc;QAEd;;;;;WAAgB;QAEhB;;;;mBAAU,QAAQ;WAAC;QAIjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YACX,IAAI,YAAY,CAAC,EAAE,CAAC;YACpB,IAAI,WAAW,CAAC,EAAE,CAAC;YACnB,IAAI,iBAAiB,CAAC,EAAE,CAAC;YACzB,IAAI,gBAAgB,EAAE;SACvB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAC5B,GAAY,EACZ,OAAmB,EACnB,IAA0B;IAE1B,MAAM,EACJ,MAAM,GAAG,UAAU,EACnB,MAAM,GAAG,UAAU,EACnB,cAAc,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAC9C,IAAI,GAAG,EAAE,GACV,GAAG,IAAI,IAAI,EAAE,CAAC;IACf,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,EAAE;QACjD,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,KAAK,EAAE;QAC/C,MAAM,EAAE,eAAe;QACvB,MAAM;QACN,cAAc;KACf,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC;QAC9B,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KACvC,CAAC,CAAC;IACH,OAAO,aAAa,CAAC,iBAAiB,CAAC;QACrC,KAAK;QACL,KAAK;QACL,uBAAuB,EAAE,IAAI;KAC9B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BaseLanguageModel } from "../../schema/index.js";
|
|
2
|
+
import { Agent, Tool, AgentInput, AgentStep } from "../index.js";
|
|
3
|
+
import { ChatPromptTemplate } from "../../prompts/index.js";
|
|
4
|
+
export type CreatePromptArgs = {
|
|
5
|
+
/** String to put after the list of tools. */
|
|
6
|
+
suffix?: string;
|
|
7
|
+
/** String to put before the list of tools. */
|
|
8
|
+
prefix?: string;
|
|
9
|
+
/** List of input variables the final prompt will expect. */
|
|
10
|
+
inputVariables?: string[];
|
|
11
|
+
};
|
|
12
|
+
type ZeroShotAgentInput = AgentInput;
|
|
13
|
+
/**
|
|
14
|
+
* Agent for the MRKL chain.
|
|
15
|
+
* @augments Agent
|
|
16
|
+
* @augments StaticAgent
|
|
17
|
+
*/
|
|
18
|
+
export declare class ChatAgent extends Agent {
|
|
19
|
+
constructor(input: ZeroShotAgentInput);
|
|
20
|
+
_agentType(): "zero-shot-react-description";
|
|
21
|
+
observationPrefix(): string;
|
|
22
|
+
llmPrefix(): string;
|
|
23
|
+
_stop(): string[];
|
|
24
|
+
static validateTools(tools: Tool[]): void;
|
|
25
|
+
constructScratchPad(steps: AgentStep[]): string;
|
|
26
|
+
/**
|
|
27
|
+
* Create prompt in the style of the zero shot agent.
|
|
28
|
+
*
|
|
29
|
+
* @param tools - List of tools the agent will have access to, used to format the prompt.
|
|
30
|
+
* @param args - Arguments to create the prompt with.
|
|
31
|
+
* @param args.suffix - String to put after the list of tools.
|
|
32
|
+
* @param args.prefix - String to put before the list of tools.
|
|
33
|
+
*/
|
|
34
|
+
static createPrompt(tools: Tool[], args?: CreatePromptArgs): ChatPromptTemplate;
|
|
35
|
+
static fromLLMAndTools(llm: BaseLanguageModel, tools: Tool[], args?: CreatePromptArgs): ChatAgent;
|
|
36
|
+
extractToolAndInput(text: string): {
|
|
37
|
+
tool: string;
|
|
38
|
+
input: string;
|
|
39
|
+
} | null;
|
|
40
|
+
}
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var ChatAgent_1;
|
|
8
|
+
import { LLMChain } from "../../chains/index.js";
|
|
9
|
+
import { Agent, staticImplements, } from "../index.js";
|
|
10
|
+
import { SystemMessagePromptTemplate, HumanMessagePromptTemplate, ChatPromptTemplate, } from "../../prompts/index.js";
|
|
11
|
+
import { PREFIX, SUFFIX, FORMAT_INSTRUCTIONS } from "./prompt.js";
|
|
12
|
+
const FINAL_ANSWER_ACTION = "Final Answer:";
|
|
13
|
+
/**
|
|
14
|
+
* Agent for the MRKL chain.
|
|
15
|
+
* @augments Agent
|
|
16
|
+
* @augments StaticAgent
|
|
17
|
+
*/
|
|
18
|
+
let ChatAgent = ChatAgent_1 = class ChatAgent extends Agent {
|
|
19
|
+
constructor(input) {
|
|
20
|
+
super(input);
|
|
21
|
+
}
|
|
22
|
+
_agentType() {
|
|
23
|
+
return "zero-shot-react-description";
|
|
24
|
+
}
|
|
25
|
+
observationPrefix() {
|
|
26
|
+
return "Observation: ";
|
|
27
|
+
}
|
|
28
|
+
llmPrefix() {
|
|
29
|
+
return "Thought:";
|
|
30
|
+
}
|
|
31
|
+
_stop() {
|
|
32
|
+
return ["Observation:"];
|
|
33
|
+
}
|
|
34
|
+
static validateTools(tools) {
|
|
35
|
+
const invalidTool = tools.find((tool) => !tool.description);
|
|
36
|
+
if (invalidTool) {
|
|
37
|
+
const msg = `Got a tool ${invalidTool.name} without a description.` +
|
|
38
|
+
` This agent requires descriptions for all tools.`;
|
|
39
|
+
throw new Error(msg);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
constructScratchPad(steps) {
|
|
43
|
+
const agentScratchpad = super.constructScratchPad(steps);
|
|
44
|
+
if (agentScratchpad) {
|
|
45
|
+
return `This was your previous work (but I haven't seen any of it! I only see what you return as final answer):\n${agentScratchpad}`;
|
|
46
|
+
}
|
|
47
|
+
return agentScratchpad;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create prompt in the style of the zero shot agent.
|
|
51
|
+
*
|
|
52
|
+
* @param tools - List of tools the agent will have access to, used to format the prompt.
|
|
53
|
+
* @param args - Arguments to create the prompt with.
|
|
54
|
+
* @param args.suffix - String to put after the list of tools.
|
|
55
|
+
* @param args.prefix - String to put before the list of tools.
|
|
56
|
+
*/
|
|
57
|
+
static createPrompt(tools, args) {
|
|
58
|
+
const { prefix = PREFIX, suffix = SUFFIX } = args ?? {};
|
|
59
|
+
const toolStrings = tools
|
|
60
|
+
.map((tool) => `${tool.name}: ${tool.description}`)
|
|
61
|
+
.join("\n");
|
|
62
|
+
const template = [prefix, toolStrings, FORMAT_INSTRUCTIONS, suffix].join("\n\n");
|
|
63
|
+
const messages = [
|
|
64
|
+
SystemMessagePromptTemplate.fromTemplate(template),
|
|
65
|
+
HumanMessagePromptTemplate.fromTemplate("{input}\n\n{agent_scratchpad}"),
|
|
66
|
+
];
|
|
67
|
+
return ChatPromptTemplate.fromPromptMessages(messages);
|
|
68
|
+
}
|
|
69
|
+
static fromLLMAndTools(llm, tools, args) {
|
|
70
|
+
ChatAgent_1.validateTools(tools);
|
|
71
|
+
const prompt = ChatAgent_1.createPrompt(tools, args);
|
|
72
|
+
const chain = new LLMChain({ prompt, llm });
|
|
73
|
+
return new ChatAgent_1({
|
|
74
|
+
llmChain: chain,
|
|
75
|
+
allowedTools: tools.map((t) => t.name),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
extractToolAndInput(text) {
|
|
79
|
+
if (text.includes(FINAL_ANSWER_ACTION)) {
|
|
80
|
+
const parts = text.split(FINAL_ANSWER_ACTION);
|
|
81
|
+
const input = parts[parts.length - 1].trim();
|
|
82
|
+
return { tool: "Final Answer", input };
|
|
83
|
+
}
|
|
84
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
85
|
+
const [_, action, __] = text.split("```");
|
|
86
|
+
try {
|
|
87
|
+
const response = JSON.parse(action.trim());
|
|
88
|
+
return { tool: response.action, input: response.action_input };
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
throw new Error(`Unable to parse JSON response from chat agent.\n\n${text}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
ChatAgent = ChatAgent_1 = __decorate([
|
|
96
|
+
(staticImplements)
|
|
97
|
+
], ChatAgent);
|
|
98
|
+
export { ChatAgent };
|
|
99
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/chat/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const PREFIX = "Answer the following questions as best you can. You have access to the following tools:";
|
|
2
|
+
export declare const FORMAT_INSTRUCTIONS = "The way you use the tools is by specifying a json blob, denoted below by $JSON_BLOB\nSpecifically, this $JSON_BLOB should have a \"action\" key (with the name of the tool to use) and a \"action_input\" key (with the input to the tool going here). \nThe $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB:\n\n```\n{{\n \"action\": \"calculator\",\n \"action_input\": \"1 + 2\"\n}}\n```\n\nALWAYS use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: \n```\n$JSON_BLOB\n```\nObservation: the result of the action\n... (this Thought/Action/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question";
|
|
3
|
+
export declare const SUFFIX = "Begin! Reminder to always use the exact characters `Final Answer` when responding.";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export const PREFIX = `Answer the following questions as best you can. You have access to the following tools:`;
|
|
2
|
+
export const FORMAT_INSTRUCTIONS = `The way you use the tools is by specifying a json blob, denoted below by $JSON_BLOB
|
|
3
|
+
Specifically, this $JSON_BLOB should have a "action" key (with the name of the tool to use) and a "action_input" key (with the input to the tool going here).
|
|
4
|
+
The $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB:
|
|
5
|
+
|
|
6
|
+
\`\`\`
|
|
7
|
+
{{
|
|
8
|
+
"action": "calculator",
|
|
9
|
+
"action_input": "1 + 2"
|
|
10
|
+
}}
|
|
11
|
+
\`\`\`
|
|
12
|
+
|
|
13
|
+
ALWAYS use the following format:
|
|
14
|
+
|
|
15
|
+
Question: the input question you must answer
|
|
16
|
+
Thought: you should always think about what to do
|
|
17
|
+
Action:
|
|
18
|
+
\`\`\`
|
|
19
|
+
$JSON_BLOB
|
|
20
|
+
\`\`\`
|
|
21
|
+
Observation: the result of the action
|
|
22
|
+
... (this Thought/Action/Observation can repeat N times)
|
|
23
|
+
Thought: I now know the final answer
|
|
24
|
+
Final Answer: the final answer to the original input question`;
|
|
25
|
+
export const SUFFIX = `Begin! Reminder to always use the exact characters \`Final Answer\` when responding.`;
|
|
26
|
+
//# sourceMappingURL=prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/agents/chat/prompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG,yFAAyF,CAAC;AAChH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;8DAsB2B,CAAC;AAC/D,MAAM,CAAC,MAAM,MAAM,GAAG,sFAAsF,CAAC"}
|
package/dist/agents/helpers.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { SerializedAgentT, AgentInput } from "./index.js";
|
|
2
2
|
import { Tool } from "./tools/index.js";
|
|
3
|
-
import {
|
|
4
|
-
export declare const deserializeHelper: <T extends string, U, V extends AgentInput, Z>(llm:
|
|
3
|
+
import { BaseLanguageModel } from "../schema/index.js";
|
|
4
|
+
export declare const deserializeHelper: <T extends string, U, V extends AgentInput, Z>(llm: BaseLanguageModel | undefined, tools: Tool[] | undefined, data: SerializedAgentT<T, U, V>, fromLLMAndTools: (llm: BaseLanguageModel, tools: Tool[], args: U) => Z, fromConstructor: (args: V) => Z) => Promise<Z>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/agents/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAMpC,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/agents/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAMpC,GAAkC,EAClC,KAAyB,EACzB,IAA+B,EAC/B,eAAsE,EACtE,eAA+B,EACnB,EAAE;IACd,IAAI,IAAI,CAAC,uBAAuB,EAAE;QAChC,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;SACtE;QAED,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QAED,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;KAC1C;IAED,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CAGpD,WAAW,EAAE,IAAI,CAAC,CAAC;IACrB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAChE,OAAO,eAAe,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC"}
|
package/dist/agents/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { AgentAction, AgentFinish, AgentStep, StoppingMethod, SerializedAgentT,
|
|
|
2
2
|
export { Agent, StaticAgent, staticImplements, AgentInput } from "./agent.js";
|
|
3
3
|
export { AgentExecutor } from "./executor.js";
|
|
4
4
|
export { ZeroShotAgent, SerializedZeroShotAgent } from "./mrkl/index.js";
|
|
5
|
+
export { ChatAgent } from "./chat/index.js";
|
|
5
6
|
export { Tool } from "./tools/index.js";
|
|
6
7
|
export { initializeAgentExecutor } from "./initialize.js";
|
|
7
8
|
export { loadAgent } from "./load.js";
|
package/dist/agents/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { Agent, staticImplements } from "./agent.js";
|
|
2
2
|
export { AgentExecutor } from "./executor.js";
|
|
3
3
|
export { ZeroShotAgent } from "./mrkl/index.js";
|
|
4
|
+
export { ChatAgent } from "./chat/index.js";
|
|
4
5
|
export { Tool } from "./tools/index.js";
|
|
5
6
|
export { initializeAgentExecutor } from "./initialize.js";
|
|
6
7
|
export { loadAgent } from "./load.js";
|
package/dist/agents/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAe,gBAAgB,EAAc,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAA2B,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EACL,UAAU,EACV,WAAW,EACX,eAAe,EACf,cAAc,EAEd,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAe,gBAAgB,EAAc,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAA2B,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EACL,UAAU,EACV,WAAW,EACX,eAAe,EACf,cAAc,EAEd,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Tool } from "./tools/index.js";
|
|
2
|
-
import {
|
|
2
|
+
import { BaseLanguageModel } from "../schema/index.js";
|
|
3
3
|
import { AgentExecutor } from "./executor.js";
|
|
4
|
-
export declare const initializeAgentExecutor: (tools: Tool[], llm:
|
|
4
|
+
export declare const initializeAgentExecutor: (tools: Tool[], llm: BaseLanguageModel, agentType?: string) => Promise<AgentExecutor>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AgentExecutor } from "./executor.js";
|
|
2
2
|
import { ZeroShotAgent } from "./mrkl/index.js";
|
|
3
|
+
import { ChatAgent } from "./chat/index.js";
|
|
3
4
|
export const initializeAgentExecutor = async (tools, llm, agentType = "zero-shot-react-description") => {
|
|
4
5
|
switch (agentType) {
|
|
5
6
|
case "zero-shot-react-description":
|
|
@@ -8,6 +9,12 @@ export const initializeAgentExecutor = async (tools, llm, agentType = "zero-shot
|
|
|
8
9
|
tools,
|
|
9
10
|
returnIntermediateSteps: true,
|
|
10
11
|
});
|
|
12
|
+
case "chat-zero-shot-react-description":
|
|
13
|
+
return AgentExecutor.fromAgentAndTools({
|
|
14
|
+
agent: ChatAgent.fromLLMAndTools(llm, tools),
|
|
15
|
+
tools,
|
|
16
|
+
returnIntermediateSteps: true,
|
|
17
|
+
});
|
|
11
18
|
default:
|
|
12
19
|
throw new Error("Unknown agent type");
|
|
13
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../src/agents/initialize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../src/agents/initialize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,KAAa,EACb,GAAsB,EACtB,SAAS,GAAG,6BAA6B,EACjB,EAAE;IAC1B,QAAQ,SAAS,EAAE;QACjB,KAAK,6BAA6B;YAChC,OAAO,aAAa,CAAC,iBAAiB,CAAC;gBACrC,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC;gBAChD,KAAK;gBACL,uBAAuB,EAAE,IAAI;aAC9B,CAAC,CAAC;QACL,KAAK,kCAAkC;YACrC,OAAO,aAAa,CAAC,iBAAiB,CAAC;gBACrC,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC;gBAC5C,KAAK;gBACL,uBAAuB,EAAE,IAAI;aAC9B,CAAC,CAAC;QACL;YACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;KACzC;AACH,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseLanguageModel } from "../../schema/index.js";
|
|
2
2
|
import { Agent, Tool, AgentInput, SerializedAgentT } from "../index.js";
|
|
3
3
|
import { PromptTemplate } from "../../prompts/index.js";
|
|
4
4
|
type SerializedFromLLMAndTools = {
|
|
@@ -37,13 +37,13 @@ export declare class ZeroShotAgent extends Agent {
|
|
|
37
37
|
* @param args.inputVariables - List of input variables the final prompt will expect.
|
|
38
38
|
*/
|
|
39
39
|
static createPrompt(tools: Tool[], args?: CreatePromptArgs): PromptTemplate;
|
|
40
|
-
static fromLLMAndTools(llm:
|
|
40
|
+
static fromLLMAndTools(llm: BaseLanguageModel, tools: Tool[], args?: CreatePromptArgs): ZeroShotAgent;
|
|
41
41
|
extractToolAndInput(text: string): {
|
|
42
42
|
tool: string;
|
|
43
43
|
input: string;
|
|
44
44
|
} | null;
|
|
45
45
|
static deserialize(data: SerializedZeroShotAgent & {
|
|
46
|
-
llm?:
|
|
46
|
+
llm?: BaseLanguageModel;
|
|
47
47
|
tools?: Tool[];
|
|
48
48
|
}): Promise<ZeroShotAgent>;
|
|
49
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/mrkl/index.ts"],"names":[],"mappings":";;;;;;;AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EACL,KAAK,EAIL,gBAAgB,GAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAyB5C;;;;GAIG;AAEI,IAAM,aAAa,qBAAnB,MAAM,aAAc,SAAQ,KAAK;IACtC,YAAY,KAAyB;QACnC,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED,UAAU;QACR,OAAO,6BAAsC,CAAC;IAChD,CAAC;IAED,iBAAiB;QACf,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,SAAS;QACP,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,KAAa;QAChC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,WAAW,EAAE;YACf,MAAM,GAAG,GACP,cAAc,WAAW,CAAC,IAAI,yBAAyB;gBACvD,kDAAkD,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;SACtB;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,YAAY,CAAC,KAAa,EAAE,IAAuB;QACxD,MAAM,EACJ,MAAM,GAAG,MAAM,EACf,MAAM,GAAG,MAAM,EACf,cAAc,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,GAC/C,GAAG,IAAI,IAAI,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,KAAK;aACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;aAClD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1E,OAAO,IAAI,cAAc,CAAC;YACxB,QAAQ;YACR,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/mrkl/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,64 +1,88 @@
|
|
|
1
1
|
import { test, expect, beforeEach, afterEach } from "@jest/globals";
|
|
2
|
-
import
|
|
3
|
-
import { InfoSqlTool, QuerySqlTool,
|
|
4
|
-
|
|
2
|
+
import { DataSource } from "typeorm";
|
|
3
|
+
import { InfoSqlTool, QuerySqlTool, ListTablesSqlTool, QueryCheckerTool, } from "../tools/sql.js";
|
|
4
|
+
import { SqlDatabase } from "../../sql_db.js";
|
|
5
5
|
const previousEnv = process.env;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
let db;
|
|
7
|
+
beforeEach(async () => {
|
|
8
|
+
const datasource = new DataSource({
|
|
9
|
+
type: "sqlite",
|
|
10
|
+
database: ":memory:",
|
|
11
|
+
synchronize: true,
|
|
12
|
+
});
|
|
13
|
+
await datasource.initialize();
|
|
14
|
+
await datasource.query(`
|
|
15
|
+
CREATE TABLE products (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, price INTEGER);
|
|
16
|
+
`);
|
|
17
|
+
await datasource.query(`
|
|
18
|
+
INSERT INTO products (name, price) VALUES ('Apple', 100);
|
|
19
|
+
`);
|
|
20
|
+
await datasource.query(`
|
|
21
|
+
INSERT INTO products (name, price) VALUES ('Banana', 200);
|
|
22
|
+
`);
|
|
23
|
+
await datasource.query(`
|
|
24
|
+
INSERT INTO products (name, price) VALUES ('Orange', 300);
|
|
25
|
+
`);
|
|
26
|
+
await datasource.query(`
|
|
27
|
+
CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER);
|
|
28
|
+
`);
|
|
29
|
+
await datasource.query(`
|
|
30
|
+
INSERT INTO users (name, age) VALUES ('Alice', 20);
|
|
31
|
+
`);
|
|
32
|
+
await datasource.query(`
|
|
33
|
+
INSERT INTO users (name, age) VALUES ('Bob', 21);
|
|
34
|
+
`);
|
|
35
|
+
await datasource.query(`
|
|
36
|
+
INSERT INTO users (name, age) VALUES ('Charlie', 22);
|
|
37
|
+
`);
|
|
38
|
+
db = await SqlDatabase.fromDataSourceParams({
|
|
39
|
+
appDataSource: datasource,
|
|
17
40
|
});
|
|
18
41
|
process.env = { ...previousEnv, OPENAI_API_KEY: "test" };
|
|
19
42
|
});
|
|
20
|
-
afterEach(() => {
|
|
21
|
-
db.close();
|
|
43
|
+
afterEach(async () => {
|
|
22
44
|
process.env = previousEnv;
|
|
45
|
+
await db.appDataSource.destroy();
|
|
23
46
|
});
|
|
24
47
|
test("QuerySqlTool", async () => {
|
|
25
|
-
const querySqlTool = new QuerySqlTool(
|
|
48
|
+
const querySqlTool = new QuerySqlTool(db);
|
|
26
49
|
const result = await querySqlTool.call("SELECT * FROM users");
|
|
27
|
-
expect(result).toBe(`
|
|
28
|
-
{"id":1,"name":"Alice","age":20}
|
|
29
|
-
{"id":2,"name":"Bob","age":21}
|
|
30
|
-
{"id":3,"name":"Charlie","age":22}`.trim());
|
|
50
|
+
expect(result).toBe(`[{"id":1,"name":"Alice","age":20},{"id":2,"name":"Bob","age":21},{"id":3,"name":"Charlie","age":22}]`);
|
|
31
51
|
});
|
|
32
52
|
test("QuerySqlTool with error", async () => {
|
|
33
|
-
const querySqlTool = new QuerySqlTool(
|
|
53
|
+
const querySqlTool = new QuerySqlTool(db);
|
|
34
54
|
const result = await querySqlTool.call("SELECT * FROM userss");
|
|
35
|
-
expect(result).toBe(`
|
|
55
|
+
expect(result).toBe(`QueryFailedError: SQLITE_ERROR: no such table: userss`);
|
|
36
56
|
});
|
|
37
57
|
test("InfoSqlTool", async () => {
|
|
38
|
-
const infoSqlTool = new InfoSqlTool(
|
|
58
|
+
const infoSqlTool = new InfoSqlTool(db);
|
|
39
59
|
const result = await infoSqlTool.call("users, products");
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
60
|
+
const expectStr = `
|
|
61
|
+
CREATE TABLE products (
|
|
62
|
+
id INTEGER , name TEXT , price INTEGER )
|
|
63
|
+
SELECT * FROM "products" LIMIT 3;
|
|
64
|
+
id name price
|
|
65
|
+
1 Apple 100
|
|
66
|
+
2 Banana 200
|
|
67
|
+
3 Orange 300
|
|
68
|
+
CREATE TABLE users (
|
|
69
|
+
id INTEGER , name TEXT , age INTEGER )
|
|
70
|
+
SELECT * FROM "users" LIMIT 3;
|
|
71
|
+
id name age
|
|
72
|
+
1 Alice 20
|
|
73
|
+
2 Bob 21
|
|
74
|
+
3 Charlie 22`;
|
|
75
|
+
expect(result.trim()).toBe(expectStr.trim());
|
|
50
76
|
});
|
|
51
77
|
test("InfoSqlTool with error", async () => {
|
|
52
|
-
const infoSqlTool = new InfoSqlTool(
|
|
78
|
+
const infoSqlTool = new InfoSqlTool(db);
|
|
53
79
|
const result = await infoSqlTool.call("userss, products");
|
|
54
|
-
expect(result).toBe(`Error: table userss
|
|
80
|
+
expect(result).toBe(`Error: Wrong target table name: the table userss was not found in the database`);
|
|
55
81
|
});
|
|
56
82
|
test("ListTablesSqlTool", async () => {
|
|
57
|
-
const listSqlTool = new ListTablesSqlTool(
|
|
83
|
+
const listSqlTool = new ListTablesSqlTool(db);
|
|
58
84
|
const result = await listSqlTool.call("");
|
|
59
|
-
expect(result).toBe(`
|
|
60
|
-
products
|
|
61
|
-
users`.trim());
|
|
85
|
+
expect(result).toBe(`products, users`);
|
|
62
86
|
});
|
|
63
87
|
test("QueryCheckerTool", async () => {
|
|
64
88
|
const queryCheckerTool = new QueryCheckerTool();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.test.js","sourceRoot":"","sources":["../../../src/agents/tests/sql.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,
|
|
1
|
+
{"version":3,"file":"sql.test.js","sourceRoot":"","sources":["../../../src/agents/tests/sql.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,7 @@ export class Calculator extends Tool {
|
|
|
13
13
|
enumerable: true,
|
|
14
14
|
configurable: true,
|
|
15
15
|
writable: true,
|
|
16
|
-
value: `Useful for getting the result of a math expression.
|
|
17
|
-
The input to this tool should be a valid mathmatical expression that can be parsed and evaluated by javascript's expr-eval`
|
|
16
|
+
value: `Useful for getting the result of a math expression. The input to this tool should be a valid mathmatical expression that could be executed by a simple calculator.`
|
|
18
17
|
});
|
|
19
18
|
}
|
|
20
19
|
async call(input) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../../src/agents/tools/calculator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,OAAO,UAAW,SAAQ,IAAI;IAApC;;QACE;;;;mBAAO,YAAY;WAAC;QAUpB;;;;mBAAc;
|
|
1
|
+
{"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../../src/agents/tools/calculator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,OAAO,UAAW,SAAQ,IAAI;IAApC;;QACE;;;;mBAAO,YAAY;WAAC;QAUpB;;;;mBAAc,oKAAoK;WAAC;IACrL,CAAC;IATC,KAAK,CAAC,IAAI,CAAC,KAAa;QACtB,IAAI;YACF,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC1C;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,8BAA8B,CAAC;SACvC;IACH,CAAC;CAGF"}
|
|
@@ -6,7 +6,7 @@ export { Tool } from "./base.js";
|
|
|
6
6
|
export { DynamicTool } from "./dynamic.js";
|
|
7
7
|
export { IFTTTWebhook } from "./IFTTTWebhook.js";
|
|
8
8
|
export { ChainTool } from "./chain.js";
|
|
9
|
-
export {
|
|
9
|
+
export { QuerySqlTool, InfoSqlTool, ListTablesSqlTool, QueryCheckerTool, } from "./sql.js";
|
|
10
10
|
export { JsonSpec, JsonListKeysTool, JsonGetValueTool, JsonObject, Json, } from "./json.js";
|
|
11
11
|
export { RequestsGetTool, RequestsPostTool } from "./requests.js";
|
|
12
12
|
export { VectorStoreQATool } from "./vectorstore.js";
|
|
@@ -6,7 +6,7 @@ export { Tool } from "./base.js";
|
|
|
6
6
|
export { DynamicTool } from "./dynamic.js";
|
|
7
7
|
export { IFTTTWebhook } from "./IFTTTWebhook.js";
|
|
8
8
|
export { ChainTool } from "./chain.js";
|
|
9
|
-
export {
|
|
9
|
+
export { QuerySqlTool, InfoSqlTool, ListTablesSqlTool, QueryCheckerTool, } from "./sql.js";
|
|
10
10
|
export { JsonSpec, JsonListKeysTool, JsonGetValueTool, } from "./json.js";
|
|
11
11
|
export { RequestsGetTool, RequestsPostTool } from "./requests.js";
|
|
12
12
|
export { VectorStoreQATool } from "./vectorstore.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EACL,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,GAGjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -24,7 +24,5 @@ export declare class JsonGetValueTool extends Tool {
|
|
|
24
24
|
name: string;
|
|
25
25
|
constructor(jsonSpec: JsonSpec);
|
|
26
26
|
call(input: string): Promise<string>;
|
|
27
|
-
description:
|
|
28
|
-
Before calling this you should be SURE that the path to this exists.
|
|
29
|
-
The input is a text representation of the path to the json as json pointer syntax (e.g. /key1/0/key2).`;
|
|
27
|
+
description: string;
|
|
30
28
|
}
|
|
@@ -95,7 +95,9 @@ export class JsonGetValueTool extends Tool {
|
|
|
95
95
|
enumerable: true,
|
|
96
96
|
configurable: true,
|
|
97
97
|
writable: true,
|
|
98
|
-
value:
|
|
98
|
+
value: `Can be used to see value in string format at a given path.
|
|
99
|
+
Before calling this you should be SURE that the path to this exists.
|
|
100
|
+
The input is a text representation of the path to the json as json pointer syntax (e.g. /key1/0/key2).`
|
|
99
101
|
});
|
|
100
102
|
}
|
|
101
103
|
async call(input) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/agents/tools/json.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAYjC,MAAM,OAAO,QAAQ;IAKnB,YAAY,GAAe,EAAE,gBAAgB,GAAG,IAAI;QAJpD;;;;;WAAgB;QAEhB;;;;mBAAiB,IAAI;WAAC;QAGpB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC;IACzC,CAAC;IAEM,OAAO,CAAC,KAAa;QAC1B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAS,CAAC;QAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;YAClE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpC;QAED,MAAM,IAAI,KAAK,CACb,YAAY,KAAK,uDAAuD,CACzE,CAAC;IACJ,CAAC;IAEM,QAAQ,CAAC,KAAa;QAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAS,CAAC;QAE1C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,YAAY,KAAK,wBAAwB,CAAC,CAAC;SAC5D;QAED,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3E,IACE,OAAO,GAAG,KAAK,QAAQ;YACvB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YACnB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAChC;YACA,OAAO,gEAAgE,CAAC;SACzE;QAED,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;YACpC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;SAClD;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,IAAI;IAGxC,YAAmB,QAAkB;QACnC,KAAK,EAAE,CAAC;;;;;mBADS;;QAFnB;;;;mBAAO,gBAAgB;WAAC;QAcxB;;;;mBAAc;;2GAE2F;WAAC;IAZ1G,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa;QACtB,IAAI;YACF,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,GAAG,KAAK,EAAE,CAAC;SACnB;IACH,CAAC;CAKF;AAED,MAAM,OAAO,gBAAiB,SAAQ,IAAI;IAGxC,YAAmB,QAAkB;QACnC,KAAK,EAAE,CAAC;;;;;mBADS;;QAFnB;;;;mBAAO,gBAAgB;WAAC;QAcxB
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/agents/tools/json.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAYjC,MAAM,OAAO,QAAQ;IAKnB,YAAY,GAAe,EAAE,gBAAgB,GAAG,IAAI;QAJpD;;;;;WAAgB;QAEhB;;;;mBAAiB,IAAI;WAAC;QAGpB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC;IACzC,CAAC;IAEM,OAAO,CAAC,KAAa;QAC1B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAS,CAAC;QAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;YAClE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpC;QAED,MAAM,IAAI,KAAK,CACb,YAAY,KAAK,uDAAuD,CACzE,CAAC;IACJ,CAAC;IAEM,QAAQ,CAAC,KAAa;QAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAS,CAAC;QAE1C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,YAAY,KAAK,wBAAwB,CAAC,CAAC;SAC5D;QAED,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3E,IACE,OAAO,GAAG,KAAK,QAAQ;YACvB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YACnB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAChC;YACA,OAAO,gEAAgE,CAAC;SACzE;QAED,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;YACpC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;SAClD;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,IAAI;IAGxC,YAAmB,QAAkB;QACnC,KAAK,EAAE,CAAC;;;;;mBADS;;QAFnB;;;;mBAAO,gBAAgB;WAAC;QAcxB;;;;mBAAc;;2GAE2F;WAAC;IAZ1G,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa;QACtB,IAAI;YACF,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,GAAG,KAAK,EAAE,CAAC;SACnB;IACH,CAAC;CAKF;AAED,MAAM,OAAO,gBAAiB,SAAQ,IAAI;IAGxC,YAAmB,QAAkB;QACnC,KAAK,EAAE,CAAC;;;;;mBADS;;QAFnB;;;;mBAAO,gBAAgB;WAAC;QAcxB;;;;mBAAc;;2GAE2F;WAAC;IAZ1G,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa;QACtB,IAAI;YACF,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,GAAG,KAAK,EAAE,CAAC;SACnB;IACH,CAAC;CAKF"}
|
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
import sqlite3 from "sqlite3";
|
|
2
1
|
import { Tool } from "./base.js";
|
|
3
2
|
import { LLMChain } from "../../chains/index.js";
|
|
4
|
-
|
|
5
|
-
private db;
|
|
6
|
-
constructor(db: sqlite3.Database);
|
|
7
|
-
getTables(): Promise<string[]>;
|
|
8
|
-
getCreateTableStatement(tableName: string): Promise<string>;
|
|
9
|
-
getSampleData(tableName: string, limit?: number): Promise<string[]>;
|
|
10
|
-
executeQuery(query: string): Promise<string[]>;
|
|
11
|
-
}
|
|
3
|
+
import { SqlDatabase } from "../../sql_db.js";
|
|
12
4
|
interface SqlTool {
|
|
13
5
|
db: SqlDatabase;
|
|
14
6
|
}
|