1.0.11 • Published 6 days ago

@zhanghongping/json-sage-workflow v1.0.11

Weekly downloads
-
License
MIT
Repository
github
Last release
6 days ago

JsonSage

<<<<<<< HEAD Build Status Test Coverage npm License

JsonSage is an intelligent JSON processing library that automatically optimizes performance and enhances developer productivity through AI-powered features.

Features

  • Generates TypeScript types from JSON data
  • Detects project type and framework
  • Optimizes JSON parsing performance
  • Watches JSON files and updates types
  • Tracks performance and provides insights
  • AI-Powered Type Inference: Uses AI to intelligently infer data types and schema from natural language descriptions

    JsonSage is an intelligent JSON processing library that automatically optimizes performance and generates TypeScript types. It's designed to work out of the box with zero configuration required.

Features

  • 🚀 Zero Configuration: Works automatically after installation
  • 📝 Automatic Type Generation: Generates TypeScript types from your JSON data
  • 🔍 Project Analysis: Detects your project type and framework
  • Performance Optimization: Automatically optimizes JSON parsing based on your usage patterns
  • 🔄 File Watching: Monitors JSON files and updates types automatically
  • 📊 Performance Monitoring: Tracks performance metrics and provides insights

    02c7019c5f97880f57706639272b6ab2052161f7

Installation

<<<<<<< HEAD
npm install json-sage-workflow
=======
npm install jsonsage
>>>>>>> 02c7019c5f97880f57706639272b6ab2052161f7

Quick Start

<<<<<<< HEAD
import { JsonSage } from 'json-sage-workflow';

// Initialize JsonSage
const sage = new JsonSage();

// Process JSON data
const result = await sage.process(jsonData);

Documentation

For detailed documentation, visit our GitHub Wiki.

Contributing

We welcome contributions! Please feel free to submit a Pull Request.

License

MIT © hongping1963-source

import { json } from 'jsonsage';

// Simple usage - everything is automatic! const data = json.parse(rawJsonString); const jsonString = json.stringify(data);

// Check performance const report = await json.getPerformanceReport(); console.log(report);

## Advanced Usage

### Custom Workflow

```typescript
import { JsonSageWorkflow } from 'jsonsage';

const workflow = new JsonSageWorkflow({
    watch: true,
    autoProcess: true,
    generateTypes: true,
    autoOptimize: true
});

// Use the workflow instance
const data = workflow.parse(rawJsonString);

Performance Monitoring

// Get detailed performance metrics
const report = await json.getPerformanceReport();
console.log(report);
// Output:
// {
//   averageParseTime: 0.123,
//   averageStringifyTime: 0.456,
//   cacheHitRate: 0.789,
//   totalOperations: 1000
// }

Features in Detail

Automatic Type Generation

JsonSage automatically generates TypeScript types for your JSON data:

// Original JSON
const data = {
    user: {
        name: "John",
        age: 30
    }
};

// Automatically generated type
interface GeneratedType {
    user: {
        name: string;
        age: number;
    };
}

Project Analysis

JsonSage analyzes your project to provide optimal configurations:

  • Detects project type (frontend/backend/fullstack)
  • Identifies frameworks (React, Vue, Express, etc.)
  • Configures optimal performance settings

Performance Optimization

  • Intelligent caching
  • Automatic memory management
  • Framework-specific optimizations

DeepSeek AI 功能

JsonSage 现在集成了 DeepSeek AI 功能,可以智能地生成 JSON Schema。

基本用法

import { json } from '@zhanghongping/json-sage-workflow';

// 设置 DeepSeek API 密钥(也可以通过环境变量 DEEPSEEK_API_KEY 设置)
process.env.DEEPSEEK_API_KEY = 'your_api_key';

// 生成 Schema
const myJson = `{
  "name": "张三",
  "age": 25,
  "email": "zhangsan@example.com"
}`;

const schema = await json.generateSchema(myJson, {
  includeDescriptions: true,
  includeExamples: true,
  format: 'json-schema-draft-07'
});

console.log(schema);

高级用法

import { JsonSageWorkflow, DeepSeekConfig } from '@zhanghongping/json-sage-workflow';

// DeepSeek 配置
const deepseekConfig: DeepSeekConfig = {
  apiKey: 'your_api_key',
  apiBaseUrl: 'https://api.deepseek.com/v1', // 可选
  model: 'deepseek-chat',                    // 可选
  temperature: 0.3,                          // 可选
  maxTokens: 4000                            // 可选
};

// 创建工作流实例
const workflow = new JsonSageWorkflow({
  deepseek: deepseekConfig,
  caching: true,  // 启用缓存以提高性能
});

// 生成 Schema
const schema = await workflow.generateSchema(myJson, {
  includeDescriptions: true,
  includeExamples: true,
  format: 'json-schema-draft-07'
});

Schema 生成选项

  • includeDescriptions: 是否包含字段描述(默认:false)
  • includeExamples: 是否包含示例值(默认:false)
  • format: Schema 格式,支持 'json-schema-draft-07' 或 'json-schema-draft-04'(默认:'json-schema-draft-07')

Configuration

While JsonSage works out of the box, you can customize its behavior:

import { JsonSageWorkflow } from 'jsonsage';

const workflow = new JsonSageWorkflow({
    watch: true, // Enable file watching
    autoProcess: true, // Enable automatic processing
    generateTypes: true, // Enable type generation
    autoOptimize: true // Enable performance optimization
});

Performance

JsonSage includes several performance optimizations:

  • Intelligent caching
  • Memory optimization
  • Framework-specific optimizations
  • Automatic performance monitoring

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

MIT

JSON Sage Workflow

智能的 JSON 处理工作流系统,提供自动化监控、验证和转换功能。集成了 DeepSeek AI,支持智能 Schema 生成、字段描述和示例值生成。

特性

  • 🤖 DeepSeek AI 驱动的智能功能
    • 自动生成精确的 JSON Schema
    • 智能生成字段描述
    • 生成符合规范的示例值
    • 支持多种 Schema 格式
  • 🔄 自动监控 JSON 文件变化
  • 📝 TypeScript 类型定义生成
  • ⚡ 性能优化的缓存支持
  • ⚙️ 灵活的配置选项

安装

npm install @zhanghongping/json-sage-workflow

DeepSeek AI 功能

1. 配置 DeepSeek

在使用 AI 功能之前,需要配置 DeepSeek API 密钥。有多种配置方式:

方式 1:环境变量

创建 .env 文件:

JSONSAGE_DEEPSEEK_API_KEY=your-api-key-here
JSONSAGE_DEEPSEEK_MODEL=deepseek-chat
JSONSAGE_DEEPSEEK_MAX_TOKENS=2000
JSONSAGE_DEEPSEEK_TEMPERATURE=0.7

方式 2:配置文件

创建 jsonsage.config.json 文件:

{
    "deepseek": {
        "apiKey": "your-api-key-here",
        "model": "deepseek-chat",
        "maxTokens": 2000,
        "temperature": 0.7
    }
}

方式 3:代码配置

import { json } from '@zhanghongping/json-sage-workflow';

const workflow = json.createWorkflow({
    schema: {
        useAI: true,
        deepseek: {
            apiKey: 'your-api-key',
            model: 'deepseek-chat'
        }
    }
});

2. 使用 AI 生成 Schema

基本使用

import { json } from '@zhanghongping/json-sage-workflow';

const workflow = json.createWorkflow({
    schema: {
        useAI: true,
        deepseek: {
            apiKey: 'your-api-key'
        }
    }
});

const jsonData = {
    name: "John Doe",
    age: 30,
    email: "john@example.com"
};

const schema = await workflow.generateSchema(jsonData);

高级选项

const schema = await workflow.generateSchema(jsonData, {
    format: 'draft-07',        // Schema 格式
    includeExamples: true,     // 包含示例值
    includeDescriptions: true, // 包含字段描述
    temperature: 0.7,         // AI 创造性程度 (0-1)
    maxTokens: 2000           // 最大生成长度
});

3. 字段描述生成

const generator = json.createSchemaGenerator({
    useAI: true,
    deepseek: {
        apiKey: 'your-api-key'
    }
});

// 生成字段描述
const descriptions = await generator.deepseek.generateFieldDescriptions(jsonData);
console.log(descriptions);
// 输出示例:
// {
//   "name": "用户的全名",
//   "age": "用户的年龄,以年为单位",
//   "email": "用户的电子邮件地址"
// }

4. 示例值生成

// 基于现有 Schema 生成示例值
const examples = await generator.deepseek.generateExamples(schema);
console.log(examples);
// 输出示例:
// {
//   "name": "Jane Smith",
//   "age": 25,
//   "email": "jane.smith@example.com"
// }

5. 完整工作流示例

import { json } from '@zhanghongping/json-sage-workflow';

async function processJSON() {
    // 创建工作流
    const workflow = json.createWorkflow({
        schema: {
            useAI: true,
            deepseek: {
                apiKey: process.env.JSONSAGE_DEEPSEEK_API_KEY,
                model: 'deepseek-chat'
            },
            caching: true // 启用缓存
        }
    });

    const jsonData = {
        user: {
            name: "John Doe",
            age: 30,
            email: "john@example.com",
            preferences: {
                theme: "dark",
                notifications: true
            }
        },
        settings: {
            language: "en",
            timezone: "UTC-5"
        }
    };

    try {
        // 1. 生成 Schema
        const schema = await workflow.generateSchema(jsonData, {
            format: 'draft-07',
            includeExamples: true,
            includeDescriptions: true
        });

        // 2. 生成字段描述
        const descriptions = await workflow.deepseek.generateFieldDescriptions(jsonData);

        // 3. 生成示例值
        const examples = await workflow.deepseek.generateExamples(schema);

        return {
            schema,
            descriptions,
            examples
        };
    } catch (error) {
        console.error('处理失败:', error.message);
    }
}

API 文档

SchemaGenerationOptions

生成 Schema 时的选项:

interface SchemaGenerationOptions {
    format?: 'draft-07' | 'draft-06' | 'draft-04'; // Schema 格式
    includeExamples?: boolean;     // 是否包含示例值
    includeDescriptions?: boolean; // 是否包含字段描述
    temperature?: number;         // AI 温度 (0-1)
    maxTokens?: number;          // 最大生成长度
}

DeepSeekConfig

DeepSeek AI 配置选项:

interface DeepSeekConfig {
    apiKey?: string;        // API 密钥
    apiBaseUrl?: string;    // API 基础 URL
    model?: string;         // 模型名称
    maxTokens?: number;     // 默认最大生成长度
    temperature?: number;   // 默认温度值
}

最佳实践

  1. API 密钥安全

    • 使用环境变量存储 API 密钥
    • 不要在代码中硬编码密钥
    • 将配置文件添加到 .gitignore
  2. 性能优化

    • 启用缓存减少 API 调用
    • 适当设置 maxTokens 值
    • 根据需要调整 temperature 值
  3. 错误处理

    • 始终使用 try-catch 包装 API 调用
    • 实现适当的重试机制
    • 记录详细的错误信息

常见问题

Q: 如何选择合适的 temperature 值?

A: temperature 值控制 AI 输出的创造性:

  • 0.0-0.3:更确定性的输出,适合严格的 Schema
  • 0.4-0.7:平衡的输出,推荐用于大多数场景
  • 0.8-1.0:更创造性的输出,适合生成示例值

Q: 缓存如何工作?

A: 缓存基于输入 JSON 的哈希值,可以通过配置设置缓存时间(TTL)。启用缓存可以显著减少 API 调用次数。

Q: 如何处理大型 JSON?

A: 对于大型 JSON: 1. 增加 maxTokens 值 2. 使用分段处理 3. 启用缓存减少重复处理

许可证

MIT

02c7019c5f97880f57706639272b6ab2052161f7