langchain 0.0.183 → 0.0.185
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/agents/format_scratchpad/openai_tools.cjs +1 -0
- package/agents/format_scratchpad/openai_tools.d.ts +1 -0
- package/agents/format_scratchpad/openai_tools.js +1 -0
- package/dist/agents/agent.cjs +19 -13
- package/dist/agents/agent.d.ts +16 -17
- package/dist/agents/agent.js +17 -11
- package/dist/agents/executor.d.ts +10 -16
- package/dist/agents/format_scratchpad/openai_tools.cjs +19 -0
- package/dist/agents/format_scratchpad/openai_tools.d.ts +3 -0
- package/dist/agents/format_scratchpad/openai_tools.js +15 -0
- package/dist/agents/openai/output_parser.cjs +66 -1
- package/dist/agents/openai/output_parser.d.ts +26 -2
- package/dist/agents/openai/output_parser.js +65 -1
- package/dist/agents/structured_chat/index.cjs +1 -2
- package/dist/agents/structured_chat/index.d.ts +2 -0
- package/dist/agents/structured_chat/index.js +1 -2
- package/dist/agents/toolkits/aws_sfn.d.ts +1 -4
- package/dist/agents/toolkits/conversational_retrieval/openai_functions.d.ts +1 -1
- package/dist/agents/toolkits/json/json.d.ts +1 -4
- package/dist/agents/toolkits/openapi/openapi.d.ts +1 -4
- package/dist/agents/toolkits/sql/sql.d.ts +1 -4
- package/dist/agents/toolkits/vectorstore/vectorstore.d.ts +2 -8
- package/dist/agents/types.cjs +8 -1
- package/dist/agents/types.d.ts +11 -5
- package/dist/agents/types.js +6 -0
- package/dist/document_loaders/fs/pdf.cjs +17 -3
- package/dist/document_loaders/fs/pdf.js +17 -3
- package/dist/document_loaders/web/apify_dataset.cjs +12 -6
- package/dist/document_loaders/web/apify_dataset.d.ts +9 -6
- package/dist/document_loaders/web/apify_dataset.js +12 -6
- package/dist/document_loaders/web/pdf.cjs +17 -3
- package/dist/document_loaders/web/pdf.js +17 -3
- package/dist/document_loaders/web/puppeteer.cjs +37 -0
- package/dist/document_loaders/web/puppeteer.d.ts +17 -0
- package/dist/document_loaders/web/puppeteer.js +37 -0
- package/dist/experimental/openai_assistant/index.cjs +221 -0
- package/dist/experimental/openai_assistant/index.d.ts +36 -0
- package/dist/experimental/openai_assistant/index.js +217 -0
- package/dist/experimental/openai_assistant/schema.cjs +2 -0
- package/dist/experimental/openai_assistant/schema.d.ts +12 -0
- package/dist/experimental/openai_assistant/schema.js +1 -0
- package/dist/experimental/plan_and_execute/agent_executor.cjs +28 -2
- package/dist/experimental/plan_and_execute/agent_executor.d.ts +10 -3
- package/dist/experimental/plan_and_execute/agent_executor.js +26 -1
- package/dist/experimental/plan_and_execute/prompt.d.ts +2 -1
- package/dist/load/import_map.cjs +4 -2
- package/dist/load/import_map.d.ts +2 -0
- package/dist/load/import_map.js +2 -0
- package/dist/prompts/chat.cjs +22 -1
- package/dist/prompts/chat.d.ts +1 -0
- package/dist/prompts/chat.js +22 -1
- package/dist/schema/index.d.ts +1 -0
- package/dist/tools/convert_to_openai.cjs +14 -2
- package/dist/tools/convert_to_openai.d.ts +1 -0
- package/dist/tools/convert_to_openai.js +11 -0
- package/dist/tools/index.cjs +2 -1
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/vectorstores/momento_vector_index.cjs +1 -1
- package/dist/vectorstores/momento_vector_index.js +1 -1
- package/dist/vectorstores/pinecone.cjs +4 -1
- package/dist/vectorstores/pinecone.d.ts +2 -1
- package/dist/vectorstores/pinecone.js +4 -1
- package/experimental/openai_assistant.cjs +1 -0
- package/experimental/openai_assistant.d.ts +1 -0
- package/experimental/openai_assistant.js +1 -0
- package/package.json +24 -8
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { OpenAI as OpenAIClient } from "openai";
|
|
2
|
+
import { Runnable } from "../../schema/runnable/base.js";
|
|
3
|
+
import { sleep } from "../../util/time.js";
|
|
4
|
+
import { StructuredTool } from "../../tools/base.js";
|
|
5
|
+
import { formatToOpenAIAssistantTool } from "../../tools/convert_to_openai.js";
|
|
6
|
+
export class OpenAIAssistantRunnable extends Runnable {
|
|
7
|
+
constructor(fields) {
|
|
8
|
+
super(fields);
|
|
9
|
+
Object.defineProperty(this, "lc_namespace", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: ["langchain", "experimental", "openai_assistant"]
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(this, "client", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: void 0
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(this, "assistantId", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: true,
|
|
24
|
+
writable: true,
|
|
25
|
+
value: void 0
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(this, "pollIntervalMs", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
configurable: true,
|
|
30
|
+
writable: true,
|
|
31
|
+
value: 1000
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(this, "asAgent", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true,
|
|
37
|
+
value: void 0
|
|
38
|
+
});
|
|
39
|
+
this.client = fields.client ?? new OpenAIClient(fields?.clientOptions);
|
|
40
|
+
this.assistantId = fields.assistantId;
|
|
41
|
+
this.asAgent = fields.asAgent ?? this.asAgent;
|
|
42
|
+
}
|
|
43
|
+
static async createAssistant({ model, name, instructions, tools, client, clientOptions, asAgent, pollIntervalMs, }) {
|
|
44
|
+
const formattedTools = tools?.map((tool) => {
|
|
45
|
+
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
46
|
+
if (tool instanceof StructuredTool) {
|
|
47
|
+
return formatToOpenAIAssistantTool(tool);
|
|
48
|
+
}
|
|
49
|
+
return tool;
|
|
50
|
+
}) ?? [];
|
|
51
|
+
const oaiClient = client ?? new OpenAIClient(clientOptions);
|
|
52
|
+
const assistant = await oaiClient.beta.assistants.create({
|
|
53
|
+
name,
|
|
54
|
+
instructions,
|
|
55
|
+
tools: formattedTools,
|
|
56
|
+
model,
|
|
57
|
+
});
|
|
58
|
+
return new this({
|
|
59
|
+
client: oaiClient,
|
|
60
|
+
assistantId: assistant.id,
|
|
61
|
+
asAgent,
|
|
62
|
+
pollIntervalMs,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
async invoke(input, _options) {
|
|
66
|
+
let run;
|
|
67
|
+
if (this.asAgent && input.steps && input.steps.length > 0) {
|
|
68
|
+
const parsedStepsInput = await this._parseStepsInput(input);
|
|
69
|
+
run = await this.client.beta.threads.runs.submitToolOutputs(parsedStepsInput.threadId, parsedStepsInput.runId, {
|
|
70
|
+
tool_outputs: parsedStepsInput.toolOutputs,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
else if (!("threadId" in input)) {
|
|
74
|
+
const thread = {
|
|
75
|
+
messages: [
|
|
76
|
+
{
|
|
77
|
+
role: "user",
|
|
78
|
+
content: input.content,
|
|
79
|
+
file_ids: input.fileIds,
|
|
80
|
+
metadata: input.messagesMetadata,
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
metadata: input.threadMetadata,
|
|
84
|
+
};
|
|
85
|
+
run = await this._createThreadAndRun({
|
|
86
|
+
...input,
|
|
87
|
+
thread,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else if (!("runId" in input)) {
|
|
91
|
+
await this.client.beta.threads.messages.create(input.threadId, {
|
|
92
|
+
content: input.content,
|
|
93
|
+
role: "user",
|
|
94
|
+
file_ids: input.file_ids,
|
|
95
|
+
metadata: input.messagesMetadata,
|
|
96
|
+
});
|
|
97
|
+
run = await this._createRun(input);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// Submitting tool outputs to an existing run, outside the AgentExecutor
|
|
101
|
+
// framework.
|
|
102
|
+
run = await this.client.beta.threads.runs.submitToolOutputs(input.runId, input.threadId, {
|
|
103
|
+
tool_outputs: input.toolOutputs,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return this._getResponse(run.id, run.thread_id);
|
|
107
|
+
}
|
|
108
|
+
async _parseStepsInput(input) {
|
|
109
|
+
const { action: { runId, threadId }, } = input.steps[input.steps.length - 1];
|
|
110
|
+
const run = await this._waitForRun(runId, threadId);
|
|
111
|
+
const toolCalls = run.required_action?.submit_tool_outputs.tool_calls;
|
|
112
|
+
if (!toolCalls) {
|
|
113
|
+
return input;
|
|
114
|
+
}
|
|
115
|
+
const toolOutputs = toolCalls.flatMap((toolCall) => {
|
|
116
|
+
const matchedAction = input.steps.find((step) => step.action.toolCallId === toolCall.id);
|
|
117
|
+
return matchedAction
|
|
118
|
+
? [
|
|
119
|
+
{
|
|
120
|
+
output: matchedAction.observation,
|
|
121
|
+
tool_call_id: matchedAction.action.toolCallId,
|
|
122
|
+
},
|
|
123
|
+
]
|
|
124
|
+
: [];
|
|
125
|
+
});
|
|
126
|
+
return { toolOutputs, runId, threadId };
|
|
127
|
+
}
|
|
128
|
+
async _createRun({ instructions, model, tools, metadata, threadId, }) {
|
|
129
|
+
const run = this.client.beta.threads.runs.create(threadId, {
|
|
130
|
+
assistant_id: this.assistantId,
|
|
131
|
+
instructions,
|
|
132
|
+
model,
|
|
133
|
+
tools,
|
|
134
|
+
metadata,
|
|
135
|
+
});
|
|
136
|
+
return run;
|
|
137
|
+
}
|
|
138
|
+
async _createThreadAndRun(input) {
|
|
139
|
+
const params = [
|
|
140
|
+
"instructions",
|
|
141
|
+
"model",
|
|
142
|
+
"tools",
|
|
143
|
+
"run_metadata",
|
|
144
|
+
]
|
|
145
|
+
.filter((key) => key in input)
|
|
146
|
+
.reduce((obj, key) => {
|
|
147
|
+
const newObj = obj;
|
|
148
|
+
newObj[key] = input[key];
|
|
149
|
+
return newObj;
|
|
150
|
+
}, {});
|
|
151
|
+
const run = this.client.beta.threads.createAndRun({
|
|
152
|
+
...params,
|
|
153
|
+
thread: input.thread,
|
|
154
|
+
assistant_id: this.assistantId,
|
|
155
|
+
});
|
|
156
|
+
return run;
|
|
157
|
+
}
|
|
158
|
+
async _waitForRun(runId, threadId) {
|
|
159
|
+
let inProgress = true;
|
|
160
|
+
let run = {};
|
|
161
|
+
while (inProgress) {
|
|
162
|
+
run = await this.client.beta.threads.runs.retrieve(threadId, runId);
|
|
163
|
+
inProgress = ["in_progress", "queued"].includes(run.status);
|
|
164
|
+
if (inProgress) {
|
|
165
|
+
await sleep(this.pollIntervalMs);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return run;
|
|
169
|
+
}
|
|
170
|
+
async _getResponse(runId, threadId) {
|
|
171
|
+
const run = await this._waitForRun(runId, threadId);
|
|
172
|
+
if (run.status === "completed") {
|
|
173
|
+
const messages = await this.client.beta.threads.messages.list(threadId, {
|
|
174
|
+
order: "asc",
|
|
175
|
+
});
|
|
176
|
+
const newMessages = messages.data.filter((msg) => msg.run_id === runId);
|
|
177
|
+
if (!this.asAgent) {
|
|
178
|
+
return newMessages;
|
|
179
|
+
}
|
|
180
|
+
const answer = newMessages.flatMap((msg) => msg.content);
|
|
181
|
+
if (answer.every((item) => item.type === "text")) {
|
|
182
|
+
const answerString = answer
|
|
183
|
+
.map((item) => item.type === "text" && item.text.value)
|
|
184
|
+
.join("\n");
|
|
185
|
+
return {
|
|
186
|
+
returnValues: {
|
|
187
|
+
output: answerString,
|
|
188
|
+
},
|
|
189
|
+
log: "",
|
|
190
|
+
runId,
|
|
191
|
+
threadId,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
else if (run.status === "requires_action") {
|
|
196
|
+
if (!this.asAgent) {
|
|
197
|
+
return run.required_action?.submit_tool_outputs.tool_calls ?? [];
|
|
198
|
+
}
|
|
199
|
+
const actions = [];
|
|
200
|
+
run.required_action?.submit_tool_outputs.tool_calls.forEach((item) => {
|
|
201
|
+
const functionCall = item.function;
|
|
202
|
+
const args = JSON.parse(functionCall.arguments);
|
|
203
|
+
actions.push({
|
|
204
|
+
tool: functionCall.name,
|
|
205
|
+
toolInput: args,
|
|
206
|
+
toolCallId: item.id,
|
|
207
|
+
log: "",
|
|
208
|
+
runId,
|
|
209
|
+
threadId,
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
return actions;
|
|
213
|
+
}
|
|
214
|
+
const runInfo = JSON.stringify(run, null, 2);
|
|
215
|
+
throw new Error(`Unexpected run status ${run.status}.\nFull run info:\n\n${runInfo}`);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { OpenAI as OpenAIClient } from "openai";
|
|
2
|
+
import type { AgentFinish, AgentAction } from "../../schema/index.js";
|
|
3
|
+
export type OpenAIAssistantFinish = AgentFinish & {
|
|
4
|
+
runId: string;
|
|
5
|
+
threadId: string;
|
|
6
|
+
};
|
|
7
|
+
export type OpenAIAssistantAction = AgentAction & {
|
|
8
|
+
toolCallId: string;
|
|
9
|
+
runId: string;
|
|
10
|
+
threadId: string;
|
|
11
|
+
};
|
|
12
|
+
export type OpenAIToolType = Array<OpenAIClient.Beta.AssistantCreateParams.AssistantToolsCode | OpenAIClient.Beta.AssistantCreateParams.AssistantToolsRetrieval | OpenAIClient.Beta.AssistantCreateParams.AssistantToolsFunction>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PlanAndExecuteAgentExecutor = void 0;
|
|
3
|
+
exports.PlanAndExecuteAgentExecutor = exports.isDynamicStructuredTool = void 0;
|
|
4
4
|
const base_js_1 = require("../../chains/base.cjs");
|
|
5
5
|
const base_js_2 = require("./base.cjs");
|
|
6
6
|
const executor_js_1 = require("../../agents/executor.cjs");
|
|
@@ -8,6 +8,21 @@ const prompt_js_1 = require("./prompt.cjs");
|
|
|
8
8
|
const llm_chain_js_1 = require("../../chains/llm_chain.cjs");
|
|
9
9
|
const outputParser_js_1 = require("./outputParser.cjs");
|
|
10
10
|
const index_js_1 = require("../../agents/chat/index.cjs");
|
|
11
|
+
const index_js_2 = require("../../agents/index.cjs");
|
|
12
|
+
/**
|
|
13
|
+
* A utility function to distiguish a dynamicstructuredtool over other tools.
|
|
14
|
+
* @param tool the tool to test
|
|
15
|
+
* @returns bool
|
|
16
|
+
*/
|
|
17
|
+
function isDynamicStructuredTool(tool) {
|
|
18
|
+
// We check for the existence of the static lc_name method in the object's constructor
|
|
19
|
+
return (
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
typeof tool.constructor.lc_name === "function" &&
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
tool.constructor.lc_name() === "DynamicStructuredTool");
|
|
24
|
+
}
|
|
25
|
+
exports.isDynamicStructuredTool = isDynamicStructuredTool;
|
|
11
26
|
/**
|
|
12
27
|
* Class representing a plan-and-execute agent executor. This agent
|
|
13
28
|
* decides on the full sequence of actions upfront, then executes them all
|
|
@@ -86,7 +101,18 @@ class PlanAndExecuteAgentExecutor extends base_js_1.BaseChain {
|
|
|
86
101
|
* @returns A new ChainStepExecutor instance.
|
|
87
102
|
*/
|
|
88
103
|
static getDefaultStepExecutor({ llm, tools, humanMessageTemplate = prompt_js_1.DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE, }) {
|
|
89
|
-
|
|
104
|
+
let agent;
|
|
105
|
+
if (isDynamicStructuredTool(tools[0])) {
|
|
106
|
+
agent = index_js_2.StructuredChatAgent.fromLLMAndTools(llm, tools, {
|
|
107
|
+
humanMessageTemplate,
|
|
108
|
+
inputVariables: ["previous_steps", "current_step", "agent_scratchpad"],
|
|
109
|
+
});
|
|
110
|
+
return new base_js_2.ChainStepExecutor(executor_js_1.AgentExecutor.fromAgentAndTools({
|
|
111
|
+
agent,
|
|
112
|
+
tools,
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
115
|
+
agent = index_js_1.ChatAgent.fromLLMAndTools(llm, tools, {
|
|
90
116
|
humanMessageTemplate,
|
|
91
117
|
});
|
|
92
118
|
return new base_js_2.ChainStepExecutor(executor_js_1.AgentExecutor.fromAgentAndTools({
|
|
@@ -4,7 +4,14 @@ import { ChainValues } from "../../schema/index.js";
|
|
|
4
4
|
import { BaseLanguageModel } from "../../base_language/index.js";
|
|
5
5
|
import { CallbackManagerForChainRun } from "../../callbacks/manager.js";
|
|
6
6
|
import { Tool } from "../../tools/base.js";
|
|
7
|
+
import { DynamicStructuredTool } from "../../tools/dynamic.js";
|
|
7
8
|
import { SerializedLLMChain } from "../../chains/serde.js";
|
|
9
|
+
/**
|
|
10
|
+
* A utility function to distiguish a dynamicstructuredtool over other tools.
|
|
11
|
+
* @param tool the tool to test
|
|
12
|
+
* @returns bool
|
|
13
|
+
*/
|
|
14
|
+
export declare function isDynamicStructuredTool(tool: Tool | DynamicStructuredTool): tool is DynamicStructuredTool;
|
|
8
15
|
/**
|
|
9
16
|
* Interface for the input to the PlanAndExecuteAgentExecutor class. It
|
|
10
17
|
* extends ChainInputs and includes additional properties for the planner,
|
|
@@ -42,7 +49,7 @@ export declare class PlanAndExecuteAgentExecutor extends BaseChain {
|
|
|
42
49
|
*/
|
|
43
50
|
static getDefaultPlanner({ llm, tools, }: {
|
|
44
51
|
llm: BaseLanguageModel;
|
|
45
|
-
tools: Tool[];
|
|
52
|
+
tools: Tool[] | DynamicStructuredTool[];
|
|
46
53
|
}): Promise<LLMPlanner>;
|
|
47
54
|
/**
|
|
48
55
|
* Static method that returns a default step executor for the agent. It
|
|
@@ -55,7 +62,7 @@ export declare class PlanAndExecuteAgentExecutor extends BaseChain {
|
|
|
55
62
|
*/
|
|
56
63
|
static getDefaultStepExecutor({ llm, tools, humanMessageTemplate, }: {
|
|
57
64
|
llm: BaseLanguageModel;
|
|
58
|
-
tools: Tool[];
|
|
65
|
+
tools: Tool[] | DynamicStructuredTool[];
|
|
59
66
|
humanMessageTemplate?: string;
|
|
60
67
|
}): ChainStepExecutor;
|
|
61
68
|
/**
|
|
@@ -70,7 +77,7 @@ export declare class PlanAndExecuteAgentExecutor extends BaseChain {
|
|
|
70
77
|
*/
|
|
71
78
|
static fromLLMAndTools({ llm, tools, humanMessageTemplate, }: {
|
|
72
79
|
llm: BaseLanguageModel;
|
|
73
|
-
tools: Tool[];
|
|
80
|
+
tools: Tool[] | DynamicStructuredTool[];
|
|
74
81
|
humanMessageTemplate?: string;
|
|
75
82
|
} & Omit<PlanAndExecuteAgentExecutorInput, "planner" | "stepExecutor">): Promise<PlanAndExecuteAgentExecutor>;
|
|
76
83
|
/** @ignore */
|
|
@@ -5,6 +5,20 @@ import { DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE, getPlannerChatPrompt
|
|
|
5
5
|
import { LLMChain } from "../../chains/llm_chain.js";
|
|
6
6
|
import { PlanOutputParser } from "./outputParser.js";
|
|
7
7
|
import { ChatAgent } from "../../agents/chat/index.js";
|
|
8
|
+
import { StructuredChatAgent } from "../../agents/index.js";
|
|
9
|
+
/**
|
|
10
|
+
* A utility function to distiguish a dynamicstructuredtool over other tools.
|
|
11
|
+
* @param tool the tool to test
|
|
12
|
+
* @returns bool
|
|
13
|
+
*/
|
|
14
|
+
export function isDynamicStructuredTool(tool) {
|
|
15
|
+
// We check for the existence of the static lc_name method in the object's constructor
|
|
16
|
+
return (
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
typeof tool.constructor.lc_name === "function" &&
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
+
tool.constructor.lc_name() === "DynamicStructuredTool");
|
|
21
|
+
}
|
|
8
22
|
/**
|
|
9
23
|
* Class representing a plan-and-execute agent executor. This agent
|
|
10
24
|
* decides on the full sequence of actions upfront, then executes them all
|
|
@@ -83,7 +97,18 @@ export class PlanAndExecuteAgentExecutor extends BaseChain {
|
|
|
83
97
|
* @returns A new ChainStepExecutor instance.
|
|
84
98
|
*/
|
|
85
99
|
static getDefaultStepExecutor({ llm, tools, humanMessageTemplate = DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE, }) {
|
|
86
|
-
|
|
100
|
+
let agent;
|
|
101
|
+
if (isDynamicStructuredTool(tools[0])) {
|
|
102
|
+
agent = StructuredChatAgent.fromLLMAndTools(llm, tools, {
|
|
103
|
+
humanMessageTemplate,
|
|
104
|
+
inputVariables: ["previous_steps", "current_step", "agent_scratchpad"],
|
|
105
|
+
});
|
|
106
|
+
return new ChainStepExecutor(AgentExecutor.fromAgentAndTools({
|
|
107
|
+
agent,
|
|
108
|
+
tools,
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
agent = ChatAgent.fromLLMAndTools(llm, tools, {
|
|
87
112
|
humanMessageTemplate,
|
|
88
113
|
});
|
|
89
114
|
return new ChainStepExecutor(AgentExecutor.fromAgentAndTools({
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ChatPromptTemplate } from "../../prompts/chat.js";
|
|
2
2
|
import { Tool } from "../../tools/base.js";
|
|
3
|
+
import { DynamicStructuredTool } from "../../tools/dynamic.js";
|
|
3
4
|
export declare const PLANNER_SYSTEM_PROMPT_MESSAGE_TEMPLATE: string;
|
|
4
5
|
export declare const DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE = "Previous steps: {previous_steps}\n\nCurrent objective: {current_step}\n\n{agent_scratchpad}\n\nYou may extract and combine relevant data from your previous steps when responding to me.";
|
|
5
6
|
/**
|
|
@@ -9,4 +10,4 @@ export declare const DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE = "Previo
|
|
|
9
10
|
* @param tools the tools available to the `planner`
|
|
10
11
|
* @returns
|
|
11
12
|
*/
|
|
12
|
-
export declare const getPlannerChatPrompt: (tools: Tool[]) => Promise<ChatPromptTemplate<import("../../schema/index.js").InputValues<string>, any>>;
|
|
13
|
+
export declare const getPlannerChatPrompt: (tools: Tool[] | DynamicStructuredTool[]) => Promise<ChatPromptTemplate<import("../../schema/index.js").InputValues<string>, any>>;
|
package/dist/load/import_map.cjs
CHANGED
|
@@ -24,12 +24,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
return result;
|
|
25
25
|
};
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.
|
|
28
|
-
exports.runnables__remote = exports.evaluation = exports.experimental__chains__violation_of_expectations = exports.experimental__chat_models__bittensor = exports.experimental__plan_and_execute = exports.experimental__generative_agents = exports.experimental__babyagi = exports.experimental__autogpt = exports.util__time = exports.util__math = exports.util__document = exports.storage__in_memory = exports.storage__encoder_backed = exports.stores__message__in_memory = exports.stores__file__in_memory = exports.stores__doc__in_memory = exports.cache = exports.retrievers__vespa = exports.retrievers__score_threshold = exports.retrievers__hyde = exports.retrievers__document_compressors__embeddings_filter = exports.retrievers__document_compressors__chain_extract = exports.retrievers__time_weighted = exports.retrievers__tavily_search_api = exports.retrievers__parent_document = exports.retrievers__multi_vector = exports.retrievers__multi_query = exports.retrievers__document_compressors = exports.retrievers__contextual_compression = exports.retrievers__databerry = exports.retrievers__chaindesk = exports.retrievers__remote = exports.output_parsers = exports.callbacks = exports.schema__storage = exports.schema__runnable = exports.schema__retriever = exports.schema__query_constructor = exports.schema__prompt_template = exports.schema__output_parser = exports.schema__document = exports.schema = exports.chat_models__fake = exports.chat_models__yandex = exports.chat_models__minimax = exports.chat_models__ollama = exports.chat_models__baiduwenxin = exports.chat_models__fireworks = void 0;
|
|
27
|
+
exports.chat_models__anthropic = exports.chat_models__openai = exports.chat_models__base = exports.document_transformers__openai_functions = exports.document_loaders__web__sort_xyz_blockchain = exports.document_loaders__web__serpapi = exports.document_loaders__web__searchapi = exports.document_loaders__base = exports.document = exports.memory = exports.text_splitter = exports.vectorstores__xata = exports.vectorstores__vectara = exports.vectorstores__prisma = exports.vectorstores__memory = exports.vectorstores__base = exports.prompts = exports.llms__fake = exports.llms__yandex = exports.llms__fireworks = exports.llms__ollama = exports.llms__cloudflare_workersai = exports.llms__aleph_alpha = exports.llms__ai21 = exports.llms__openai = exports.llms__base = exports.embeddings__voyage = exports.embeddings__minimax = exports.embeddings__openai = exports.embeddings__ollama = exports.embeddings__fake = exports.embeddings__cache_backed = exports.embeddings__base = exports.chains__openai_functions = exports.chains__combine_documents__reduce = exports.chains = exports.tools__render = exports.tools = exports.base_language = exports.agents__openai__output_parser = exports.agents__xml__output_parser = exports.agents__react__output_parser = exports.agents__format_scratchpad__log_to_message = exports.agents__format_scratchpad__xml = exports.agents__format_scratchpad__log = exports.agents__format_scratchpad__openai_tools = exports.agents__format_scratchpad = exports.agents__toolkits = exports.agents = exports.load__serializable = void 0;
|
|
28
|
+
exports.runnables__remote = exports.evaluation = exports.experimental__chains__violation_of_expectations = exports.experimental__chat_models__bittensor = exports.experimental__plan_and_execute = exports.experimental__generative_agents = exports.experimental__babyagi = exports.experimental__openai_assistant = exports.experimental__autogpt = exports.util__time = exports.util__math = exports.util__document = exports.storage__in_memory = exports.storage__encoder_backed = exports.stores__message__in_memory = exports.stores__file__in_memory = exports.stores__doc__in_memory = exports.cache = exports.retrievers__vespa = exports.retrievers__score_threshold = exports.retrievers__hyde = exports.retrievers__document_compressors__embeddings_filter = exports.retrievers__document_compressors__chain_extract = exports.retrievers__time_weighted = exports.retrievers__tavily_search_api = exports.retrievers__parent_document = exports.retrievers__multi_vector = exports.retrievers__multi_query = exports.retrievers__document_compressors = exports.retrievers__contextual_compression = exports.retrievers__databerry = exports.retrievers__chaindesk = exports.retrievers__remote = exports.output_parsers = exports.callbacks = exports.schema__storage = exports.schema__runnable = exports.schema__retriever = exports.schema__query_constructor = exports.schema__prompt_template = exports.schema__output_parser = exports.schema__document = exports.schema = exports.chat_models__fake = exports.chat_models__yandex = exports.chat_models__minimax = exports.chat_models__ollama = exports.chat_models__baiduwenxin = exports.chat_models__fireworks = exports.chat_models__cloudflare_workersai = void 0;
|
|
29
29
|
exports.load__serializable = __importStar(require("../load/serializable.cjs"));
|
|
30
30
|
exports.agents = __importStar(require("../agents/index.cjs"));
|
|
31
31
|
exports.agents__toolkits = __importStar(require("../agents/toolkits/index.cjs"));
|
|
32
32
|
exports.agents__format_scratchpad = __importStar(require("../agents/format_scratchpad/openai_functions.cjs"));
|
|
33
|
+
exports.agents__format_scratchpad__openai_tools = __importStar(require("../agents/format_scratchpad/openai_tools.cjs"));
|
|
33
34
|
exports.agents__format_scratchpad__log = __importStar(require("../agents/format_scratchpad/log.cjs"));
|
|
34
35
|
exports.agents__format_scratchpad__xml = __importStar(require("../agents/format_scratchpad/xml.cjs"));
|
|
35
36
|
exports.agents__format_scratchpad__log_to_message = __importStar(require("../agents/format_scratchpad/log_to_message.cjs"));
|
|
@@ -117,6 +118,7 @@ exports.util__document = __importStar(require("../util/document.cjs"));
|
|
|
117
118
|
exports.util__math = __importStar(require("../util/math.cjs"));
|
|
118
119
|
exports.util__time = __importStar(require("../util/time.cjs"));
|
|
119
120
|
exports.experimental__autogpt = __importStar(require("../experimental/autogpt/index.cjs"));
|
|
121
|
+
exports.experimental__openai_assistant = __importStar(require("../experimental/openai_assistant/index.cjs"));
|
|
120
122
|
exports.experimental__babyagi = __importStar(require("../experimental/babyagi/index.cjs"));
|
|
121
123
|
exports.experimental__generative_agents = __importStar(require("../experimental/generative_agents/index.cjs"));
|
|
122
124
|
exports.experimental__plan_and_execute = __importStar(require("../experimental/plan_and_execute/index.cjs"));
|
|
@@ -2,6 +2,7 @@ export * as load__serializable from "../load/serializable.js";
|
|
|
2
2
|
export * as agents from "../agents/index.js";
|
|
3
3
|
export * as agents__toolkits from "../agents/toolkits/index.js";
|
|
4
4
|
export * as agents__format_scratchpad from "../agents/format_scratchpad/openai_functions.js";
|
|
5
|
+
export * as agents__format_scratchpad__openai_tools from "../agents/format_scratchpad/openai_tools.js";
|
|
5
6
|
export * as agents__format_scratchpad__log from "../agents/format_scratchpad/log.js";
|
|
6
7
|
export * as agents__format_scratchpad__xml from "../agents/format_scratchpad/xml.js";
|
|
7
8
|
export * as agents__format_scratchpad__log_to_message from "../agents/format_scratchpad/log_to_message.js";
|
|
@@ -89,6 +90,7 @@ export * as util__document from "../util/document.js";
|
|
|
89
90
|
export * as util__math from "../util/math.js";
|
|
90
91
|
export * as util__time from "../util/time.js";
|
|
91
92
|
export * as experimental__autogpt from "../experimental/autogpt/index.js";
|
|
93
|
+
export * as experimental__openai_assistant from "../experimental/openai_assistant/index.js";
|
|
92
94
|
export * as experimental__babyagi from "../experimental/babyagi/index.js";
|
|
93
95
|
export * as experimental__generative_agents from "../experimental/generative_agents/index.js";
|
|
94
96
|
export * as experimental__plan_and_execute from "../experimental/plan_and_execute/index.js";
|
package/dist/load/import_map.js
CHANGED
|
@@ -3,6 +3,7 @@ export * as load__serializable from "../load/serializable.js";
|
|
|
3
3
|
export * as agents from "../agents/index.js";
|
|
4
4
|
export * as agents__toolkits from "../agents/toolkits/index.js";
|
|
5
5
|
export * as agents__format_scratchpad from "../agents/format_scratchpad/openai_functions.js";
|
|
6
|
+
export * as agents__format_scratchpad__openai_tools from "../agents/format_scratchpad/openai_tools.js";
|
|
6
7
|
export * as agents__format_scratchpad__log from "../agents/format_scratchpad/log.js";
|
|
7
8
|
export * as agents__format_scratchpad__xml from "../agents/format_scratchpad/xml.js";
|
|
8
9
|
export * as agents__format_scratchpad__log_to_message from "../agents/format_scratchpad/log_to_message.js";
|
|
@@ -90,6 +91,7 @@ export * as util__document from "../util/document.js";
|
|
|
90
91
|
export * as util__math from "../util/math.js";
|
|
91
92
|
export * as util__time from "../util/time.js";
|
|
92
93
|
export * as experimental__autogpt from "../experimental/autogpt/index.js";
|
|
94
|
+
export * as experimental__openai_assistant from "../experimental/openai_assistant/index.js";
|
|
93
95
|
export * as experimental__babyagi from "../experimental/babyagi/index.js";
|
|
94
96
|
export * as experimental__generative_agents from "../experimental/generative_agents/index.js";
|
|
95
97
|
export * as experimental__plan_and_execute from "../experimental/plan_and_execute/index.js";
|
package/dist/prompts/chat.cjs
CHANGED
|
@@ -337,13 +337,34 @@ class ChatPromptTemplate extends BaseChatPromptTemplate {
|
|
|
337
337
|
_getPromptType() {
|
|
338
338
|
return "chat";
|
|
339
339
|
}
|
|
340
|
+
async _parseImagePrompts(message, inputValues) {
|
|
341
|
+
if (typeof message.content === "string") {
|
|
342
|
+
return message;
|
|
343
|
+
}
|
|
344
|
+
const formattedMessageContent = await Promise.all(message.content.map(async (item) => {
|
|
345
|
+
if (item.type !== "image_url" ||
|
|
346
|
+
typeof item.image_url === "string" ||
|
|
347
|
+
!item.image_url?.url) {
|
|
348
|
+
return item;
|
|
349
|
+
}
|
|
350
|
+
const imageUrl = item.image_url.url;
|
|
351
|
+
const promptTemplatePlaceholder = prompt_js_1.PromptTemplate.fromTemplate(imageUrl);
|
|
352
|
+
const formattedUrl = await promptTemplatePlaceholder.format(inputValues);
|
|
353
|
+
// eslint-disable-next-line no-param-reassign
|
|
354
|
+
item.image_url.url = formattedUrl;
|
|
355
|
+
return item;
|
|
356
|
+
}));
|
|
357
|
+
// eslint-disable-next-line no-param-reassign
|
|
358
|
+
message.content = formattedMessageContent;
|
|
359
|
+
return message;
|
|
360
|
+
}
|
|
340
361
|
async formatMessages(values) {
|
|
341
362
|
const allValues = await this.mergePartialAndUserVariables(values);
|
|
342
363
|
let resultMessages = [];
|
|
343
364
|
for (const promptMessage of this.promptMessages) {
|
|
344
365
|
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
345
366
|
if (promptMessage instanceof index_js_1.BaseMessage) {
|
|
346
|
-
resultMessages.push(promptMessage);
|
|
367
|
+
resultMessages.push(await this._parseImagePrompts(promptMessage, allValues));
|
|
347
368
|
}
|
|
348
369
|
else {
|
|
349
370
|
const inputValues = promptMessage.inputVariables.reduce((acc, inputVariable) => {
|
package/dist/prompts/chat.d.ts
CHANGED
|
@@ -169,6 +169,7 @@ export declare class ChatPromptTemplate<RunInput extends InputValues = any, Part
|
|
|
169
169
|
validateTemplate: boolean;
|
|
170
170
|
constructor(input: ChatPromptTemplateInput<RunInput, PartialVariableName>);
|
|
171
171
|
_getPromptType(): "chat";
|
|
172
|
+
private _parseImagePrompts;
|
|
172
173
|
formatMessages(values: TypedPromptInputValues<RunInput>): Promise<BaseMessage[]>;
|
|
173
174
|
partial<NewPartialVariableName extends string>(values: PartialValues<NewPartialVariableName>): Promise<ChatPromptTemplate<InputValues<Exclude<Extract<keyof RunInput, string>, NewPartialVariableName>>, any>>;
|
|
174
175
|
/**
|
package/dist/prompts/chat.js
CHANGED
|
@@ -325,13 +325,34 @@ export class ChatPromptTemplate extends BaseChatPromptTemplate {
|
|
|
325
325
|
_getPromptType() {
|
|
326
326
|
return "chat";
|
|
327
327
|
}
|
|
328
|
+
async _parseImagePrompts(message, inputValues) {
|
|
329
|
+
if (typeof message.content === "string") {
|
|
330
|
+
return message;
|
|
331
|
+
}
|
|
332
|
+
const formattedMessageContent = await Promise.all(message.content.map(async (item) => {
|
|
333
|
+
if (item.type !== "image_url" ||
|
|
334
|
+
typeof item.image_url === "string" ||
|
|
335
|
+
!item.image_url?.url) {
|
|
336
|
+
return item;
|
|
337
|
+
}
|
|
338
|
+
const imageUrl = item.image_url.url;
|
|
339
|
+
const promptTemplatePlaceholder = PromptTemplate.fromTemplate(imageUrl);
|
|
340
|
+
const formattedUrl = await promptTemplatePlaceholder.format(inputValues);
|
|
341
|
+
// eslint-disable-next-line no-param-reassign
|
|
342
|
+
item.image_url.url = formattedUrl;
|
|
343
|
+
return item;
|
|
344
|
+
}));
|
|
345
|
+
// eslint-disable-next-line no-param-reassign
|
|
346
|
+
message.content = formattedMessageContent;
|
|
347
|
+
return message;
|
|
348
|
+
}
|
|
328
349
|
async formatMessages(values) {
|
|
329
350
|
const allValues = await this.mergePartialAndUserVariables(values);
|
|
330
351
|
let resultMessages = [];
|
|
331
352
|
for (const promptMessage of this.promptMessages) {
|
|
332
353
|
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
333
354
|
if (promptMessage instanceof BaseMessage) {
|
|
334
|
-
resultMessages.push(promptMessage);
|
|
355
|
+
resultMessages.push(await this._parseImagePrompts(promptMessage, allValues));
|
|
335
356
|
}
|
|
336
357
|
else {
|
|
337
358
|
const inputValues = promptMessage.inputVariables.reduce((acc, inputVariable) => {
|
package/dist/schema/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatToOpenAITool = exports.formatToOpenAIFunction = void 0;
|
|
3
|
+
exports.formatToOpenAIAssistantTool = exports.formatToOpenAITool = exports.formatToOpenAIFunction = void 0;
|
|
4
4
|
const zod_to_json_schema_1 = require("zod-to-json-schema");
|
|
5
5
|
/**
|
|
6
6
|
* Formats a `StructuredTool` instance into a format that is compatible
|
|
@@ -17,13 +17,25 @@ function formatToOpenAIFunction(tool) {
|
|
|
17
17
|
}
|
|
18
18
|
exports.formatToOpenAIFunction = formatToOpenAIFunction;
|
|
19
19
|
function formatToOpenAITool(tool) {
|
|
20
|
+
const schema = (0, zod_to_json_schema_1.zodToJsonSchema)(tool.schema);
|
|
20
21
|
return {
|
|
21
22
|
type: "function",
|
|
22
23
|
function: {
|
|
23
24
|
name: tool.name,
|
|
24
25
|
description: tool.description,
|
|
25
|
-
parameters:
|
|
26
|
+
parameters: schema,
|
|
26
27
|
},
|
|
27
28
|
};
|
|
28
29
|
}
|
|
29
30
|
exports.formatToOpenAITool = formatToOpenAITool;
|
|
31
|
+
function formatToOpenAIAssistantTool(tool) {
|
|
32
|
+
return {
|
|
33
|
+
type: "function",
|
|
34
|
+
function: {
|
|
35
|
+
name: tool.name,
|
|
36
|
+
description: tool.description,
|
|
37
|
+
parameters: (0, zod_to_json_schema_1.zodToJsonSchema)(tool.schema),
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
exports.formatToOpenAIAssistantTool = formatToOpenAIAssistantTool;
|
|
@@ -8,3 +8,4 @@ import { StructuredTool } from "./base.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function formatToOpenAIFunction(tool: StructuredTool): OpenAIClient.Chat.ChatCompletionCreateParams.Function;
|
|
10
10
|
export declare function formatToOpenAITool(tool: StructuredTool): OpenAIClient.Chat.ChatCompletionTool;
|
|
11
|
+
export declare function formatToOpenAIAssistantTool(tool: StructuredTool): OpenAIClient.Beta.AssistantCreateParams.AssistantToolsFunction;
|
|
@@ -13,6 +13,17 @@ export function formatToOpenAIFunction(tool) {
|
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
export function formatToOpenAITool(tool) {
|
|
16
|
+
const schema = zodToJsonSchema(tool.schema);
|
|
17
|
+
return {
|
|
18
|
+
type: "function",
|
|
19
|
+
function: {
|
|
20
|
+
name: tool.name,
|
|
21
|
+
description: tool.description,
|
|
22
|
+
parameters: schema,
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function formatToOpenAIAssistantTool(tool) {
|
|
16
27
|
return {
|
|
17
28
|
type: "function",
|
|
18
29
|
function: {
|
package/dist/tools/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatToOpenAIFunction = exports.SearchApi = exports.SearxngSearch = exports.DataForSeoAPISearch = exports.WolframAlphaTool = exports.WikipediaQueryRun = exports.BraveSearch = exports.WriteFileTool = exports.ReadFileTool = exports.AIPluginTool = exports.GoogleCustomSearch = exports.Serper = exports.ZapierNLAWrapper = exports.ZapierNLARunAction = exports.VectorStoreQATool = exports.RequestsPostTool = exports.RequestsGetTool = exports.JsonGetValueTool = exports.JsonListKeysTool = exports.JsonSpec = exports.ChainTool = exports.IFTTTWebhook = exports.DynamicStructuredTool = exports.DynamicTool = exports.StructuredTool = exports.Tool = exports.BingSerpAPI = exports.DadJokeAPI = exports.SerpAPI = void 0;
|
|
3
|
+
exports.formatToOpenAITool = exports.formatToOpenAIFunction = exports.SearchApi = exports.SearxngSearch = exports.DataForSeoAPISearch = exports.WolframAlphaTool = exports.WikipediaQueryRun = exports.BraveSearch = exports.WriteFileTool = exports.ReadFileTool = exports.AIPluginTool = exports.GoogleCustomSearch = exports.Serper = exports.ZapierNLAWrapper = exports.ZapierNLARunAction = exports.VectorStoreQATool = exports.RequestsPostTool = exports.RequestsGetTool = exports.JsonGetValueTool = exports.JsonListKeysTool = exports.JsonSpec = exports.ChainTool = exports.IFTTTWebhook = exports.DynamicStructuredTool = exports.DynamicTool = exports.StructuredTool = exports.Tool = exports.BingSerpAPI = exports.DadJokeAPI = exports.SerpAPI = void 0;
|
|
4
4
|
var serpapi_js_1 = require("./serpapi.cjs");
|
|
5
5
|
Object.defineProperty(exports, "SerpAPI", { enumerable: true, get: function () { return serpapi_js_1.SerpAPI; } });
|
|
6
6
|
var dadjokeapi_js_1 = require("./dadjokeapi.cjs");
|
|
@@ -52,3 +52,4 @@ var searchapi_js_1 = require("./searchapi.cjs");
|
|
|
52
52
|
Object.defineProperty(exports, "SearchApi", { enumerable: true, get: function () { return searchapi_js_1.SearchApi; } });
|
|
53
53
|
var convert_to_openai_js_1 = require("./convert_to_openai.cjs");
|
|
54
54
|
Object.defineProperty(exports, "formatToOpenAIFunction", { enumerable: true, get: function () { return convert_to_openai_js_1.formatToOpenAIFunction; } });
|
|
55
|
+
Object.defineProperty(exports, "formatToOpenAITool", { enumerable: true, get: function () { return convert_to_openai_js_1.formatToOpenAITool; } });
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -19,4 +19,4 @@ export { WolframAlphaTool } from "./wolframalpha.js";
|
|
|
19
19
|
export { DataForSeoAPISearch, type DataForSeoApiConfig, } from "./dataforseo_api_search.js";
|
|
20
20
|
export { SearxngSearch } from "./searxng_search.js";
|
|
21
21
|
export { SearchApi, type SearchApiParameters } from "./searchapi.js";
|
|
22
|
-
export { formatToOpenAIFunction } from "./convert_to_openai.js";
|
|
22
|
+
export { formatToOpenAIFunction, formatToOpenAITool, } from "./convert_to_openai.js";
|
package/dist/tools/index.js
CHANGED
|
@@ -19,4 +19,4 @@ export { WolframAlphaTool } from "./wolframalpha.js";
|
|
|
19
19
|
export { DataForSeoAPISearch, } from "./dataforseo_api_search.js";
|
|
20
20
|
export { SearxngSearch } from "./searxng_search.js";
|
|
21
21
|
export { SearchApi } from "./searchapi.js";
|
|
22
|
-
export { formatToOpenAIFunction } from "./convert_to_openai.js";
|
|
22
|
+
export { formatToOpenAIFunction, formatToOpenAITool, } from "./convert_to_openai.js";
|
|
@@ -224,7 +224,7 @@ class MomentoVectorIndex extends base_js_1.VectorStore {
|
|
|
224
224
|
pageContent: hit.metadata[this.textField]?.toString() ?? "",
|
|
225
225
|
metadata: Object.fromEntries(Object.entries(hit.metadata).filter(([key]) => key !== this.textField)),
|
|
226
226
|
}),
|
|
227
|
-
hit.
|
|
227
|
+
hit.score,
|
|
228
228
|
]);
|
|
229
229
|
}
|
|
230
230
|
else if (response instanceof sdk_core_1.VectorSearch.Error) {
|