p4u-client-ai
Version:
Empower Your Apps with AI: Access Multiple Models, Automate Tasks, Create AI Agents Easily
188 lines (149 loc) • 5.83 kB
Markdown
# P4U Client AI
Empower Your Apps with AI: Access Multiple Models, Automate Tasks, Create AI Agents Easily
## Installation
```bash
yarn add p4u-client-ai
# or
npm install p4u-client-ai
```
## Usage
### Basic Usage
```typescript
import AIClient, { GPTModelsEnum, IRequest, IInsert } from 'p4u-client-ai';
const client = new AIClient();
// Login
await client.login('your-username', 'your-password');
// List available tasks
const tasks = await client.listTasks();
// Run a task
const request: IRequest = {
ask: 'What is the weather today?',
context: 'Weather inquiry',
idTask: 'task-id'
};
const result = await client.runTask(request);
// Create a new task
const newTask: IInsert = {
name: 'Weather Assistant',
context: 'Provides weather information',
model: GPTModelsEnum.OAIGPT4o,
instruction: 'You are a helpful weather assistant'
};
await client.createTask(newTask);
```
### Types and enums
You can import all types and enums directly from the package root:
```ts
import AIClient, {
IRequest,
IInsert,
IDelete,
GPTModelsEnum,
AudioModelsEnum,
ImageModelsEnum,
VideoModelsEnum,
} from 'p4u-client-ai';
```
### Available Models
#### GPT Models
- `GPTModelsEnum.OAIGPT5` - GPT-5
- `GPTModelsEnum.OAIGPT5mini` - GPT-5 mini
- `GPTModelsEnum.OAIGPT5nano` - GPT-5 nano
- `GPTModelsEnum.OAIGPT41` - GPT-4.1 (2025-04-14)
- `GPTModelsEnum.OAIGPT41mini` - GPT-4.1 mini (2025-04-14)
- `GPTModelsEnum.OAIGPT41nano` - GPT-4.1 nano (2025-04-14)
- `GPTModelsEnum.OAIGPT4o` - GPT-4o (2024-11-20)
- `GPTModelsEnum.OAIGPT4omini` - GPT-4o Mini
- `GPTModelsEnum.OAIGPTo1Preview` - o1-preview
- `GPTModelsEnum.OAIGPTo1Mini` - o1-mini
- `GPTModelsEnum.OAIGPTo3Mini` - o3-mini (2025-01-31)
- `GPTModelsEnum.Claude4Sonet` - Claude Sonnet 4 (2025-05-14)
- `GPTModelsEnum.Claude3Haiku` - Claude 3 Haiku (2024-03-07)
- `GPTModelsEnum.Claude35Haiku` - Claude 3.5 Haiku (2024-10-22)
#### Audio Models
- `AudioModelsEnum.OAIWHISPER1` - Whisper-1
- `AudioModelsEnum.OAITTS1` - TTS-1
- `AudioModelsEnum.OAITTS1HD` - TTS-1 HD
- `AudioModelsEnum.OAITTS4oMINI` - GPT-4o Mini TTS
- `AudioModelsEnum.OAI4oMiniTranscribe` - GPT-4o Mini Transcribe
#### Image Models
- `ImageModelsEnum.SDV3` - Stable Diffusion v3
- `ImageModelsEnum.SDV3_CORE` - Stable Diffusion v3 Core
- `ImageModelsEnum.SDV3_ULTRA` - Stable Diffusion v3 Ultra
- `ImageModelsEnum.SDV3_TURBO_LARGE` - Stable Diffusion v3 Turbo Large
- `ImageModelsEnum.SDV3_LARGE` - Stable Diffusion v3 Large
- `ImageModelsEnum.SDV3_MEDIUM` - Stable Diffusion v3 Medium
- `ImageModelsEnum.SDV1_6` - Stable Diffusion v1.6
- `ImageModelsEnum.SDV1XL` - Stable Diffusion XL 1024 v1.0
- `ImageModelsEnum.SDV2XLBeta` - Stable Diffusion XL Beta v2.2.2
- `ImageModelsEnum.SDV1_VIDEO` - Stable Diffusion v1 Video
#### Video Models
- `VideoModelsEnum.VSDV2Beta` - Stable Diffusion Video v2 Beta
### API Methods
- `login(userName: string, password: string)` - Authenticate with the API
- `pingPong()` - Test API connectivity
- `listTasks()` - Get all available tasks
- `runTask(request: IRequest)` - Execute a task
- `createTask(request: IInsert)` - Create a new task
- `deleteTask(request: IDelete)` - Delete a task
- `setLocalUrl(url: string)` - Set custom API URL for development
#### Agents
- `listAgents()` - Get all agents
- `getAgent(id: string)` - Get one agent
- `createAgent(request: IInsertAgent)` - Create agent
- `updateAgent(request: IUpdateAgent)` - Update agent
- `deleteAgent(id: string)` - Delete agent
- `queryAgent(body: IAgentQueryRequest)` - Run a query through an agent (stream or text response per backend)
Usage:
```ts
import AIClient, { GPTModelsEnum } from 'p4u-client-ai';
const client = new AIClient();
await client.login('user','pass');
const created = await client.createAgent({
name: 'My Agent',
model: GPTModelsEnum.OAIGPT4o,
instruction: 'You are helpful.'
});
const agents = await client.listAgents();
const answer = await client.queryAgent({ idAgent: created.data.id, ask: 'Hello!' });
```
#### RAG (knowledge base)
- `getAllAgentRag(query?: Record<string, any>)` - List RAG entries
- `getAgentRag(id: string)` - Get RAG entry
- `createAgentRag(data: IAgentRag)` - Create RAG entry (multipart form)
- `deleteAgentRag(id: string)` - Delete RAG entry
- `addKnowledge(data: IAddKnowledgeRequest)` - Add knowledge content
- `addKnowledgeBatch(data: IAddKnowledgeBatchRequest)` - Add knowledge in batch
- `addKnowledgeFromFile(agentRagId: string, file: Blob, metadata?: Record<string, any>)` - Upload file knowledge
- `searchKnowledge(data: ISearchKnowledgeRequest)` - Semantic search
- `getKnowledgeById(id: string)` - Get one knowledge item
- `getKnowledgeStatistics(agentRagId: string)` - Stats
- `getKnowledgeByAgentRagId(agentRagId: string)` - List knowledge items for RAG
- `excludeKnowledge(data: IExcludeKnowledgeRequest)` - Remove specific chunks
- `searchKnowledgeByMetadata(data: ISearchKnowledgeByMetadataRequest)` - Filter by metadata
Usage:
```ts
import AIClient from 'p4u-client-ai';
const client = new AIClient();
await client.login('user','pass');
// Create RAG entry without file
const rag = await client.createAgentRag({
name: 'Docs KB',
agentId: 'agent-id',
description: 'Product docs'
});
// Upload a file to knowledge base
const file = new Blob([new Uint8Array([1,2,3])], { type: 'application/pdf' });
await client.addKnowledgeFromFile(rag.data.id, file, { section: 'intro' });
// Search knowledge
const search = await client.searchKnowledge({ agentRagId: rag.data.id, query: 'pricing', limit: 5 });
```
### TypeScript Support
This package includes full TypeScript definitions with interfaces:
- `IRequest` - For task execution requests
- `IInsert` - For creating new tasks
- `IDelete` - For deleting tasks
## License
Apache-2.0
## Homepage
[https://www.valar-ai.com](https://www.valar-ai.com)