Files
twenty/packages/twenty-server/src/engine/integrations/llm-tracing/drivers/console.driver.ts
T
ad-elias 4c642a0bb8 Text-to-SQL proof of concept (#5788)
Added:
- An "Ask AI" command to the command menu.
- A simple GraphQL resolver that converts the user's question into a
relevant SQL query using an LLM, runs the query, and returns the result.

<img width="428" alt="Screenshot 2024-06-09 at 20 53 09"
src="https://github.com/twentyhq/twenty/assets/171685816/57127f37-d4a6-498d-b253-733ffa0d209f">

No security concerns have been addressed, this is only a
proof-of-concept and not intended to be enabled in production.

All changes are behind a feature flag called `IS_ASK_AI_ENABLED`.

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
2024-07-04 08:57:26 +02:00

26 lines
872 B
TypeScript

import { BaseCallbackHandler } from '@langchain/core/callbacks/base';
import { ConsoleCallbackHandler } from '@langchain/core/tracers/console';
import { Run } from '@langchain/core/tracers/base';
import { LLMTracingDriver } from 'src/engine/integrations/llm-tracing/drivers/interfaces/llm-tracing-driver.interface';
class WithMetadataConsoleCallbackHandler extends ConsoleCallbackHandler {
private metadata: Record<string, unknown>;
constructor(metadata: Record<string, unknown>) {
super();
this.metadata = metadata;
}
onChainStart(run: Run) {
console.log(`Chain metadata: ${JSON.stringify(this.metadata)}`);
super.onChainStart(run);
}
}
export class ConsoleDriver implements LLMTracingDriver {
getCallbackHandler(metadata: Record<string, unknown>): BaseCallbackHandler {
return new WithMetadataConsoleCallbackHandler(metadata);
}
}