Allow multiple source CSV files for normalisation. Implement real model node. Add normalizarion prompt. Implement normalization setup. Start on RAG retreival functions
This commit is contained in:
+24
-21
@@ -1,24 +1,27 @@
|
||||
// import { SystemMessage } from "@langchain/core/messages";
|
||||
// import { GraphNode } from "@langchain/langgraph";
|
||||
// import { MessagesState } from "../state";
|
||||
// import { arithmeticTools } from "../tools/arithmetic";
|
||||
// import { ChatOpenAI } from "@langchain/openai"
|
||||
import { HumanMessage, SystemMessage } from "@langchain/core/messages";
|
||||
import { GraphNode } from "@langchain/langgraph";
|
||||
import { MessagesState } from "../state";
|
||||
import { ChatOpenAI } from "@langchain/openai"
|
||||
import { hydratePrompt } from "../prompts/hydratePrompt";
|
||||
|
||||
// const model = new ChatOpenAI({
|
||||
// model: "gpt-5-mini"
|
||||
// });
|
||||
export function createModelNode(tools: any, promptPath: string): GraphNode<typeof MessagesState> {
|
||||
return async (state) => {
|
||||
const sysPrompt = hydratePrompt(promptPath, state.disinformationTitle)
|
||||
|
||||
// const modelWithTools = model.bindTools(arithmeticTools);
|
||||
const model = new ChatOpenAI({
|
||||
model: "gpt-5-mini"
|
||||
});
|
||||
const modelWithTools = model.bindTools(tools);
|
||||
|
||||
// export const llmCall: GraphNode<typeof MessagesState> = async (state) => {
|
||||
// const response = await modelWithTools.invoke([
|
||||
// new SystemMessage(
|
||||
// "You are a helpful assistant tasked with performing arithmetic on a set of inputs. Any calculation, no matter how trivial, should be done with tools. Output the final answer with %%% on each side"
|
||||
// ),
|
||||
// ...state.messages,
|
||||
// ]);
|
||||
// return {
|
||||
// messages: [response],
|
||||
// llmCalls: 1,
|
||||
// };
|
||||
// };
|
||||
const response = await modelWithTools.invoke([
|
||||
new SystemMessage(
|
||||
sysPrompt
|
||||
),
|
||||
...state.messages,
|
||||
]);
|
||||
|
||||
return {
|
||||
messages: [response]
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,9 +1,16 @@
|
||||
import { GraphNode } from "@langchain/langgraph";
|
||||
import { MessagesState } from "../state";
|
||||
import { HumanMessage } from "@langchain/core/messages";
|
||||
import { AIMessage, BaseMessage, HumanMessage } from "@langchain/core/messages";
|
||||
import { calculateSimilarity } from "../tools/clan/retreiveExamples";
|
||||
|
||||
export const normalizationSetup: GraphNode<typeof MessagesState> = async (state) => {
|
||||
//TODO: Implement claim normalisation, using few shot prompting and CLAN Dataset
|
||||
let similarityResults = await calculateSimilarity(state.disinformationTitle)
|
||||
|
||||
console.log(similarityResults)
|
||||
|
||||
let messages : BaseMessage[] = similarityResults.map((item) => {
|
||||
return new AIMessage(`Original Claim: ${item.rawtext}. \n\n Normalised Claim: ${item.cleantext}`)
|
||||
})
|
||||
|
||||
return { messages: [ new HumanMessage(state.disinformationTitle)] };
|
||||
return { messages: messages, disinformationTitle: state.disinformationTitle };
|
||||
};
|
||||
Reference in New Issue
Block a user