I'm using LangChain (v.0.0.146) in a nodeJS app.js file. It is working for some scenarios OK, but when I'm trying to use the ChatPromptTemplate it is not found:
const prompt1 = ChatPromptTemplate.fromMessages([
TypeError: ChatPromptTemplate.fromMessages is not a function
This is how I'm importing it, as per the documentation:
const { ChatPromptTemplate, MessagesPlaceholder } = require('langchain/prompts');
Looking in the node_modules/langchain/prompts
- indeed, I could not find the ChatPromptTemplate exported at all. I could only find this in: \node_modules\langchain\dist\prompts\chat.js
However, I cannot directly import from this path. I cannot find the importable file to export this library.
For completion, here's how I attempt using this:
const { ChatOpenAI } = require("langchain/chat_models/openai");
const { ConversationChain } = require('langchain/chains');
const { BufferMemory } = require('langchain/memory');
const { ChatPromptTemplate, MessagesPlaceholder } = require('langchain/prompts');
async function runChat() {
memory1 = new BufferMemory({
returnMessages: true,
memoryKey: "memKey1",
llm: new ChatOpenAI({ modelName: "gpt-3.5-turbo", temperature: 0,
callbacks: [
{
handleLLMEnd: (output, runId, parentRunId, tags) => {
const { completionTokens, promptTokens, totalTokens } = output.llmOutput?.tokenUsage;
console.log('Tokens used: ', completionTokens, promptTokens, totalTokens);
},
},
], }),
});
model = new ChatOpenAI();
const prompt1 = ChatPromptTemplate.fromMessages([
[
"system",
chatPromptMultipleAdvisors,
],
new MessagesPlaceholder("memKey1"),
["human", "{input}"],
]);
chain1 = new ConversationChain({ llm: model, prompt: prompt1, memory: memory1 });
res11 = await chain1.call({ input: "what is AI training?" });
console.log({ res11, memory1: await memory1.loadMemoryVariables({}) });
}
What am I missing, please?
it does exist in
"langchain": "^0.0.150",
import { MessagesPlaceholder,ChatPromptTemplate } from "langchain/prompts";
But it does not have fromMessages
, it has fromPromptMessages
. this is the type:
export declare class ChatPromptTemplate<RunInput extends InputValues = any, PartialVariableName extends string = any> extends BaseChatPromptTemplate<RunInput, PartialVariableName> implements ChatPromptTemplateInput<RunInput, PartialVariableName> {
static lc_name(): string;
get lc_aliases(): {
promptMessages: string;
};
promptMessages: Array<BaseMessagePromptTemplate | BaseMessage>;
validateTemplate: boolean;
constructor(input: ChatPromptTemplateInput<RunInput, PartialVariableName>);
_getPromptType(): "chat";
formatMessages(values: TypedPromptInputValues<RunInput>): Promise<BaseMessage[]>;
partial<NewPartialVariableName extends string>(values: PartialValues<NewPartialVariableName>): Promise<ChatPromptTemplate<InputValues<Exclude<Extract<keyof RunInput, string>, NewPartialVariableName>>, any>>;
static fromPromptMessages<RunInput extends InputValues = any>(promptMessages: (ChatPromptTemplate<InputValues, string> | BaseMessagePromptTemplateLike)[]): ChatPromptTemplate<RunInput>;
}