AI Text Generation
Use ClaudeGenerateText from @loopstack/claude-module to call the Claude LLM for text generation.
Setup
import { Module } from '@nestjs/common';
import { ClaudeModule } from '@loopstack/claude-module';
import { LoopCoreModule } from '@loopstack/core';
@Module({
imports: [LoopCoreModule, ClaudeModule],
providers: [PromptWorkflow],
exports: [PromptWorkflow],
})
export class PromptModule {}Example Workflow
import { z } from 'zod';
import { ClaudeGenerateText, ClaudeGenerateTextResult, ClaudeMessageDocument } from '@loopstack/claude-module';
import { BaseWorkflow, Final, Initial, InjectTool, Workflow } from '@loopstack/common';
@Workflow({
uiConfig: __dirname + '/prompt.ui.yaml',
schema: z.object({
subject: z.string().default('coffee'),
}),
})
export class PromptWorkflow extends BaseWorkflow {
@InjectTool() claudeGenerateText: ClaudeGenerateText;
llmResult?: ClaudeGenerateTextResult;
@Initial({ to: 'prompt_executed' })
async prompt() {
const args = this.ctx.args as { subject: string };
const result = await this.claudeGenerateText.call({
claude: { model: 'claude-sonnet-4-6' },
prompt: this.render(__dirname + '/templates/prompt.md', { subject: args.subject }),
});
this.llmResult = result.data as ClaudeGenerateTextResult;
}
@Final({ from: 'prompt_executed' })
async respond() {
await this.repository.save(ClaudeMessageDocument, this.llmResult!, { id: this.llmResult!.id });
}
}Call Options
await this.claudeGenerateText.call({
claude: { model: 'claude-sonnet-4-6' },
// Option 1: Simple prompt
prompt: 'Write a haiku about coffee',
// Option 2: Explicit messages
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'Write a haiku about coffee' },
],
// Option 3: Collect documents by tag as conversation history
messagesSearchTag: 'message',
});Using Templates
Render Handlebars templates for complex prompts:
const rendered = this.render(__dirname + '/templates/prompt.md', {
subject: args.subject,
});
const result = await this.claudeGenerateText.call({
claude: { model: 'claude-sonnet-4-6' },
prompt: rendered,
});Environment Variables
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY | Anthropic API key |
Registry References
- prompt-example-workflow — Single-turn prompt with subject parameter and Handlebars template
Last updated on