Wordsmith makes it easy to generate thousands of stories, reports, and articles in the time it takes to write just one. Wordsmith is a natural language generation tool that enables users to turn data into text using dynamic templates. The platform is easy to learn, and powerful enough to make each piece of content totally unique.
The Wordsmith API allows developers to generate new content using the Templates created in the Wordsmith web app by users at your company. Developers can use the API to send new data which will trigger the generation of new text content. You have complete control over when you generate and use the content.
Run npm install wordsmith-node-sdk --save
in your console.
Every resource is accessible via the wordsmith
instance:
var wordsmith = require('wordsmith-node-sdk')('your_api_key', 'your_user_agent');
// wordsmith.{METHOD} or wordsmith.{RESOURCE}.{METHOD}
All resources return a Promise for easy asynchronous management.
Returns an array of Projects
wordsmith.projects.all()
.then(function(projects) {
// do something with projects
})
.catch(function(error) {
// deal with errors
});
Returns a specific Project based on its slug-name
wordsmith.projects.find('YOUR_PROJECT_SLUG')
.then(function(project) {
// do something with project
})
.catch(function(error) {
// deal with errors
});
Returns a the data schema of a specific Project. The data schema details the data that must be passed when generating content (see below).
wordsmith.projects.find('YOUR_PROJECT_SLUG')
.then(function(project) {
return project.schema;
})
.then(function(schema) {
// do something with schema
})
.catch(function(error) {
// deal with errors
});
/*
Schema:
{
a: "Number",
b: "Number",
c: "Number"
}
*/
Returns an array of Templates
wordsmith.projects.find('YOUR_PROJECT_SLUG')
.then(function(project) {
return project.templates.all();
})
.then(function(templates) {
// do something with templates
})
.catch(function(error) {
// deal with errors
});
Returns a single Template based on its slug-name
wordsmith.projects.find('YOUR_PROJECT_SLUG')
.then(function(project) {
return project.templates.find('YOUR_TEMPLATE_SLUG');
})
.then(function(template) {
// do something with template
})
.catch(function(error) {
// deal with errors
});
Turns data into narrative content. Data should be in the form of an object with keys for each data variable your Template uses. To see which keys are required, look at the data schema returned by project.schema
above.
wordsmith.projects.find('YOUR_PROJECT_SLUG')
.then(function(project) {
return project.templates.find('YOUR_TEMPLATE_SLUG');
})
.then(function(template) {
return template.generate(YOUR_DATA_OBJECT);
})
.then(function(content) {
// do something with content
})
.catch(function(error) {
// deal with errors
});
/*
Data object example:
{
a: 1,
b: 2,
c: 3
}
*/
Test your implementation of the generate content function. Will return with an error or a success message and will not bill your organization.
wordsmith.projects.find('YOUR_PROJECT_SLUG')
.then(function(project) {
return project.templates.find('YOUR_TEMPLATE_SLUG');
})
.then(function(template) {
return template.test(YOUR_DATA_OBJECT);
})
.then(function(content) {
// do something with content
})
.catch(function(error) {
// deal with errors
});
/*
Data object example:
{
a: 1,
b: 2,
c: 3
}
*/
Run tests using npm test
from the root of the repo.
Bug reports and pull requests are welcome on GitHub at https://github.com/automatedinsightsinc/wordsmith-node-sdk