@zhanghongping/json-sage-workflow
TypeScript icon, indicating that this package has built-in type declarations

1.0.13 • Public • Published

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

Package Sidebar

Install

npm i @zhanghongping/json-sage-workflow

Weekly Downloads

6

Version

1.0.13

License

MIT

Unpacked Size

416 kB

Total Files

92

Last publish

Collaborators

  • zhanghongping