meta.node.ts 980 B

12345678910111213141516171819202122232425
  1. import { AgentState } from "../config/agent-state";
  2. import { BaseChatModel } from "@langchain/core/language_models/chat_models";
  3. import { PROMPTS } from "../config/langchain-config";
  4. import { FFBVectorService } from "../ffb-vector.service";
  5. export const metaNode = async (
  6. state: typeof AgentState.State,
  7. model: BaseChatModel,
  8. providerName: string = 'Unknown',
  9. vectorService?: FFBVectorService
  10. ): Promise<Partial<typeof AgentState.State>> => {
  11. const lastMessage = state.messages[state.messages.length - 1].content as string;
  12. // Construct context from messages
  13. const context = state.messages.map(m => `${m._getType()}: ${m.content}`).join('\n');
  14. let schemaContext = "Schema visualization unavailable.";
  15. if (vectorService) {
  16. schemaContext = await vectorService.getSchemaContext();
  17. }
  18. const response = await model.invoke(PROMPTS.META(lastMessage, context, providerName, schemaContext));
  19. return { messages: [response] };
  20. };