mirror of
https://github.com/n8n-io/n8n.git
synced 2024-11-15 17:14:05 -08:00
87def60979
Github issue / Community forum post (link here to close automatically): https://community.n8n.io/t/langchain-memory-chat/23733 --------- Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> Co-authored-by: Oleg Ivaniv <me@olegivaniv.com> Co-authored-by: Val <68596159+valya@users.noreply.github.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in> Co-authored-by: Deborah <deborah@starfallprojects.co.uk> Co-authored-by: Jesper Bylund <mail@jesperbylund.com> Co-authored-by: Jon <jonathan.bennetts@gmail.com> Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com> Co-authored-by: Giulio Andreini <andreini@netseven.it> Co-authored-by: Mason Geloso <Mason.geloso@gmail.com> Co-authored-by: Mason Geloso <hone@Masons-Mac-mini.local> Co-authored-by: Mutasem Aldmour <mutasem@n8n.io>
48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
import type { OpenAI as OpenAIClient } from 'openai';
|
|
import type { StructuredTool } from 'langchain/tools';
|
|
|
|
// Copied from langchain(`langchain/src/tools/convert_to_openai.ts`)
|
|
// since these functions are not exported
|
|
|
|
/**
|
|
* Formats a `StructuredTool` instance into a format that is compatible
|
|
* with OpenAI's ChatCompletionFunctions. It uses the `zodToJsonSchema`
|
|
* function to convert the schema of the `StructuredTool` into a JSON
|
|
* schema, which is then used as the parameters for the OpenAI function.
|
|
*/
|
|
export function formatToOpenAIFunction(
|
|
tool: StructuredTool,
|
|
): OpenAIClient.Chat.ChatCompletionCreateParams.Function {
|
|
return {
|
|
name: tool.name,
|
|
description: tool.description,
|
|
parameters: zodToJsonSchema(tool.schema),
|
|
};
|
|
}
|
|
|
|
export function formatToOpenAITool(tool: StructuredTool): OpenAIClient.Chat.ChatCompletionTool {
|
|
const schema = zodToJsonSchema(tool.schema);
|
|
return {
|
|
type: 'function',
|
|
function: {
|
|
name: tool.name,
|
|
description: tool.description,
|
|
parameters: schema,
|
|
},
|
|
};
|
|
}
|
|
|
|
export function formatToOpenAIAssistantTool(
|
|
tool: StructuredTool,
|
|
): OpenAIClient.Beta.AssistantCreateParams.AssistantToolsFunction {
|
|
return {
|
|
type: 'function',
|
|
function: {
|
|
name: tool.name,
|
|
description: tool.description,
|
|
parameters: zodToJsonSchema(tool.schema),
|
|
},
|
|
};
|
|
}
|