@loop/ai
AI provider abstraction layer for Loop Health. Provides a unified interface for OpenAI and Anthropic with support for embeddings, PDF extraction, and text chunking.
Installation
pnpm add @loop/aiClient Creation
import { createAIClient } from '@loop/ai';
const client = createAIClient({
provider: 'openai',
apiKey: process.env.OPENAI_API_KEY!,
model: 'gpt-4o',
});Embeddings
import { createAIClient } from '@loop/ai';
const client = createAIClient({ provider: 'openai', apiKey });
// Single embedding
const embedding = await client.embed('What is BPC-157?');
// Batch embeddings
const embeddings = await client.embedBatch([
'BPC-157 benefits',
'TB-500 mechanism',
]);Text Processing
import { chunkText, extractPlainTextFromLexical } from '@loop/ai';
// Chunk long text for embedding
const chunks = chunkText(longDocument, { maxChunkSize: 500, overlap: 50 });
// Extract plain text from Payload CMS Lexical rich text
const plainText = extractPlainTextFromLexical(lexicalContent);Research Paper Ingestion
import { ingestResearchPaper } from '@loop/ai';
await ingestResearchPaper({
title: 'BPC-157 Gastrointestinal Effects',
content: paperContent,
metadata: { doi: '10.1234/example' },
});Used By
@loop/ai is used by applications that need AI and embedding capabilities:
- @loop/embeddings-api — OpenAI embedding generation and vector storage
- @loop/admin — Knowledge base sync for CMS content