1.1.0 • Published 4 months ago
humanloop-type-generator v1.1.0
Humanloop Type Generator
A strongly typed SDK generator for Humanloop that creates TypeScript interfaces and a client for your Humanloop project. It preserves the folder structure of your prompts and provides autocompletion for your inputs and outputs.
Installation
npm install humanloop-type-generator
# or
yarn add humanloop-type-generator
# or
pnpm add humanloop-type-generator
Usage
CLI
The generator provides a simple CLI for generating your client:
# Generate using environment variables
npx humanloop generate
# Or with command-line arguments
npx humanloop generate --apiKey YOUR_API_KEY --environmentId YOUR_ENVIRONMENT_ID
# Specify a custom output directory
npx humanloop generate --outputDir ./custom-output-dir
# Display help
npx humanloop help
You can also set up a .env
file with your Humanloop credentials:
HUMANLOOP_API_KEY=your_api_key
HUMANLOOP_ENVIRONMENT=your_environment_id
Generated Client Usage
The generated client will match your folder structure in Humanloop. For example:
In Humanloop:
8 - Prospecting/Get Apollo Search
Get X Reply
Becomes in code:
import { TypedHumanloopClient } from "./humanloop-client/client";
const client = new TypedHumanloopClient({
apiKey: "your_api_key",
environmentId: "your_environment_id",
});
// Using namespaced prompt from a folder
const apolloResult = await client.prospecting.getApolloSearch.call({
inputs: {
// Type-safe inputs
query: "search term",
},
});
// Using root-level prompt
const xReply = await client.root.getXReply.call({
inputs: {
// Type-safe inputs
username: "johndoe",
},
});
// Type-safe outputs
console.log(apolloResult.people);
Features
- 🌳 Preserves your Humanloop folder structure
- 📝 Generates TypeScript types for inputs and outputs
- 🖊️ Converts prompt names to camelCase method names
- 🔄 Handles input and output type conversion
- ⚡ Fast concurrent processing of prompts
- 📄 Supports workspaces with large numbers of prompts through pagination
- 🧩 Creates type-safe interfaces based on your prompt definitions
Command Line Options
--apiKey
: Your Humanloop API key--environmentId
: Your Humanloop environment ID--outputDir
: Directory to output generated files (default: ./humanloop-client)--config
: Path to a config file
Environment Variables
HUMANLOOP_API_KEY
: Your Humanloop API keyHUMANLOOP_ENVIRONMENT
: Your Humanloop environment IDOUTPUT_DIR
: Directory to output generated files
Performance
The generator processes all prompts concurrently, making it highly efficient even for workspaces with many prompts.
Requirements
This package requires:
- Node.js 14 or higher
- Humanloop API access
- Prompts with defined tool schemas for optimal type generation
License
MIT
1.1.0
4 months ago