Get started with @falkordb/text-to-cypher-node in less than 5 minutes!
- Node.js 16 or higher
- FalkorDB instance running (or connection to one)
- API key for your chosen AI provider (OpenAI, Anthropic, or Google)
npm install @falkordb/text-to-cypher-nodeconst { TextToCypher } = require('@falkordb/text-to-cypher-node');
const client = new TextToCypher({
model: 'gpt-4o-mini', // AI model to use
apiKey: process.env.OPENAI_API_KEY, // Your API key
falkordbConnection: 'falkor://localhost:6379' // FalkorDB connection
});async function example() {
// Ask a question in plain English
const response = await client.textToCypher(
'movies', // Graph name
'Find actors who appeared in movies after 2020'
);
console.log('Generated Query:', response.cypherQuery);
console.log('Results:', response.cypherResult);
console.log('Answer:', response.answer);
}
example();That's it! You're now converting natural language to Cypher queries.
If you want to see the query before executing it:
const response = await client.cypherOnly('movies', 'Show me all actors');
console.log('Query:', response.cypherQuery);
// Now you can review, modify, or execute it yourselfconst schema = await client.discoverSchema('movies');
const schemaObj = JSON.parse(schema);
console.log('Nodes:', schemaObj.nodes);
console.log('Relationships:', schemaObj.relationships);const response = await client.textToCypherWithMessages('movies', [
{ role: 'user', content: 'Show me actors' },
{ role: 'assistant', content: 'Here are the actors...' },
{ role: 'user', content: 'Now filter those who acted after 2020' }
]);import { TextToCypher, ClientOptions } from '@falkordb/text-to-cypher-node';
const options: ClientOptions = {
model: 'gpt-4o-mini',
apiKey: process.env.OPENAI_API_KEY!,
falkordbConnection: 'falkor://localhost:6379'
};
const client = new TextToCypher(options);
const response = await client.textToCypher('movies', 'Find all actors');
console.log(response.answer);Create a .env file:
OPENAI_API_KEY=sk-your-key-here
FALKORDB_CONNECTION=falkor://localhost:6379
AI_MODEL=gpt-4o-miniThen use it in your code:
require('dotenv').config();
const client = new TextToCypher({
model: process.env.AI_MODEL,
apiKey: process.env.OPENAI_API_KEY,
falkordbConnection: process.env.FALKORDB_CONNECTION
});try {
const response = await client.textToCypher('movies', 'Find all actors');
if (response.status === 'error') {
console.error('Error:', response.error);
} else {
console.log('Success:', response.answer);
}
} catch (error) {
console.error('Exception:', error.message);
}{ model: 'gpt-4o-mini' }
{ model: 'gpt-4o' }
{ model: 'gpt-4-turbo' }{ model: 'anthropic:claude-3-5-sonnet-20241022' }
{ model: 'anthropic:claude-3-opus-20240229' }{ model: 'gemini:gemini-2.0-flash-exp' }
{ model: 'gemini:gemini-1.5-pro' }- Check out the full API documentation
- See integration guide for FalkorDB Browser
- Explore examples directory for more use cases
- Read contributing guide if you want to contribute
- Start with
cypherOnly()to see what queries are being generated - Use conversation context for follow-up questions
- Cache schemas if you're making multiple queries to the same graph
- Handle errors gracefully - AI responses can occasionally fail
- Review generated queries before executing in production
Happy querying! 🚀