import { Sqlite, tables, views, info } from '@deepagents/text2sql/sqlite';import Database from 'better-sqlite3';const db = new Database('./my-database.db');const adapter = new Sqlite({ execute: (sql) => db.prepare(sql).all(), grounding: [ tables(), views(), info() ]});
import Database from 'better-sqlite3';const db = new Database('./database.db');const adapter = new Sqlite({ execute: (sql) => db.prepare(sql).all(), grounding: [tables()]});
import { Text2Sql } from '@deepagents/text2sql';import { Sqlite, tables, views, info, indexes } from '@deepagents/text2sql/sqlite';import { InMemoryContextStore } from '@deepagents/context';import { openai } from '@ai-sdk/openai';import Database from 'better-sqlite3';// Create databaseconst db = new Database('./ecommerce.db');// Create sample schemadb.exec(` CREATE TABLE IF NOT EXISTS customers ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE, created_at TEXT DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS orders ( id INTEGER PRIMARY KEY, customer_id INTEGER NOT NULL, total REAL NOT NULL, status TEXT NOT NULL, created_at TEXT DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (customer_id) REFERENCES customers(id) ); CREATE INDEX IF NOT EXISTS idx_orders_customer ON orders(customer_id); CREATE INDEX IF NOT EXISTS idx_orders_status ON orders(status);`);// Create adapterconst adapter = new Sqlite({ execute: (sql) => { console.log('Executing:', sql); return db.prepare(sql).all(); }, grounding: [ tables(), views(), info(), indexes() ]});// Create Text2SQL instanceconst text2sql = new Text2Sql({ version: 'v1', model: openai('gpt-4o'), adapter, store: new InMemoryContextStore()});// Generate queriesasync function demo() { // Simple query const sql1 = await text2sql.toSql('Show all customers'); console.log('Query 1:', sql1); console.log('Results:', adapter.execute(sql1)); // Join query const sql2 = await text2sql.toSql('Show customer names with their order count'); console.log('Query 2:', sql2); console.log('Results:', adapter.execute(sql2)); // Aggregation const sql3 = await text2sql.toSql('What is the total revenue by customer?'); console.log('Query 3:', sql3); console.log('Results:', adapter.execute(sql3));}demo().catch(console.error);
import Database from 'better-sqlite3';const db = new Database(':memory:');// Create test schemadb.exec(` CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT); INSERT INTO users (name) VALUES ('Alice'), ('Bob');`);const adapter = new Sqlite({ execute: (sql) => db.prepare(sql).all(), grounding: [tables()]});const sql = await text2sql.toSql('Show all users');console.log(sql);// SELECT * FROM users