使用 Vibe Coding 构建 AI 自动化评测系统

1.概述

在当今快速发展的 AI 时代,如何高效、准确地评估 AI 模型的性能已成为一个关键挑战。传统的评测方法往往依赖大量人工干预,不仅效率低下,而且难以保证评测的一致性和客观性。本文将深入探讨如何使用 Vibe Coding 的理念,结合现代 AI 技术,构建一个智能、高效且可扩展的自动化评测系统。我们将从系统架构设计出发,详细剖析核心组件的实现,并分享在实际项目中积累的最佳实践。

2.内容

2.1 什么是 Vibe Coding?

Vibe Coding 是一种新兴的开发理念,它强调通过直觉、流程和氛围来驱动代码编写,而非传统的、严格的规划。它鼓励开发者:

以流程为中心:将复杂的系统分解为一系列清晰的、可执行的流程。

快速原型:通过快速迭代和原型验证来探索最佳解决方案。

氛围驱动:在轻松、创造性的环境中进行开发,鼓励实验和创新。

在构建我们的 AI 自动化评测系统时,我们将遵循 Vibe Coding 的原则,将复杂的评测任务分解为一系列独立的、可组合的模块,从而实现系统的灵活性和可扩展性。

2.2 系统架构概览

我们的自动化评测系统采用经典的分层架构,以确保各组件之间的低耦合和高内聚。整个系统可以分为四个主要层次:

1. 表示层 (Presentation Layer)

这是系统与用户交互的入口,负责接收评测请求和展示结果。

  • API 网关 (API Gateway):作为所有外部请求的统一入口,负责路由分发、协议转换、请求限流和熔断。
  • 负载均衡器 (Load Balancer):将 incoming traffic 分发到多个后端服务实例,确保高可用性和性能。
  • 认证授权服务 (Auth Service):处理用户身份验证和权限控制,确保系统安全。
  • 前端界面 (Frontend):提供用户友好的 Web 界面,用于提交评测任务、查看结果和监控系统状态。

2. 业务逻辑层 (Business Logic Layer)

这是系统的核心,包含了所有与 AI 评测相关的业务逻辑。

  • AI 评测引擎 (AI Evaluation Engine):这是系统的"大脑",负责加载和执行 AI 模型,对输入数据进行推理,并计算各项评测指标。
  • 任务调度器 (Task Scheduler):管理所有待处理的评测任务,根据优先级和资源情况进行调度,并支持任务的并行处理。
  • 结果处理器 (Result Processor):接收来自 AI 引擎的原始评测结果,进行聚合、格式化和持久化。
  • 缓存管理器 (Cache Manager):实现多级缓存策略(如内存缓存、Redis 缓存),以加速对频繁请求或计算成本高的数据的访问。

3. 数据访问层 (Data Access Layer)

该层负责与各种数据存储系统进行交互,为业务逻辑层提供统一的数据访问接口。

  • 关系型数据库 (PostgreSQL):用于存储结构化的元数据,如用户信息、任务配置、模型版本等。
  • 文档数据库 (MongoDB):用于存储非结构化的评测结果和日志,便于后续的查询和分析。
  • 缓存数据库 (Redis):作为高速缓存层,存储热点数据和会话信息,以降低后端数据库的压力。
  • 消息队列 (RabbitMQ/Kafka):作为异步通信的中间件,解耦任务的生产者和消费者,提高系统的吞吐量和容错性。

4. 基础设施层 (Infrastructure Layer)

提供系统运行所需的基础环境和工具。

  • 容器化 (Docker):将应用及其依赖打包成标准化的容器,实现"一次构建,到处运行"。
  • 容器编排 (Kubernetes):自动化容器的部署、扩展和管理,提供服务发现、健康检查和自愈能力。
  • 监控系统 (Prometheus + Grafana):收集和可视化系统的各项性能指标,如 CPU、内存、网络流量等。
  • 日志系统 (ELK Stack):集中化地收集、存储和分析应用日志,便于问题排查和审计。

3.核心组件实现详解

接下来,我们将深入探讨业务逻辑层中几个核心组件的具体实现。

3.1 AI 评测引擎 (AI Evaluation Engine)

这是整个系统的灵魂。我们使用 Python 和 PyTorch 框架来构建一个灵活、可扩展的评测引擎。

复制代码
# ai_evaluation_engine.py
import torch
import torch.nn as nn
from typing import Dict, List, Any, Optional
from abc import ABC, abstractmethod
import logging
from dataclasses import dataclass

@dataclass
class EvaluationResult:
    """评测结果数据类"""
    score: float
    metrics: Dict[str, float]
    details: Dict[str, Any]
    model_name: str

class BaseModel(ABC):
    """所有评测模型的基类"""
    def __init__(self, model_name: str, device: str = 'cuda'):
        self.model_name = model_name
        self.device = torch.device(device if torch.cuda.is_available() else 'cpu')
        self.logger = logging.getLogger(f"{__name__}.{model_name}")

    @abstractmethod
    def load_model(self, model_path: str):
        """加载模型"""
        pass

    @abstractmethod
    def predict(self, input_data: Any) -> Any:
        """执行模型推理"""
        pass

    @abstractmethod
    def evaluate(self, prediction: Any, ground_truth: Any) -> EvaluationResult:
        """根据预测结果和真实标签计算评测指标"""
        pass

class AIEvaluationEngine:
    """AI 自动化评测引擎"""
    def __init__(self):
        self.models: Dict[str, BaseModel] = {}
        self.logger = logging.getLogger(__name__)

    def register_model(self, model: BaseModel):
        """注册一个评测模型"""
        self.models[model.model_name] = model
        self.logger.info(f"Model '{model.model_name}' registered successfully.")

    def evaluate(self, model_name: str, input_data: List[Any], ground_truths: List[Any]) -> List[EvaluationResult]:
        """使用指定模型对一批数据进行评测"""
        if model_name not in self.models:
            raise ValueError(f"Model '{model_name}' not found. Available models: {list(self.models.keys())}")

        model = self.models[model_name]
        results = []

        self.logger.info(f"Starting evaluation with model '{model_name}' on {len(input_data)} samples.")

        for i, (data, truth) in enumerate(zip(input_data, ground_truths)):
            try:
                prediction = model.predict(data)
                result = model.evaluate(prediction, truth)
                results.append(result)
                self.logger.debug(f"Sample {i+1}/{len(input_data)} evaluated. Score: {result.score:.4f}")
            except Exception as e:
                self.logger.error(f"Error evaluating sample {i+1}: {e}")
                # 可以选择跳过错误样本或返回一个错误标记的结果
                results.append(EvaluationResult(score=0.0, metrics={'error': 1.0}, details={'error_msg': str(e)}, model_name=model_name))

        self.logger.info(f"Evaluation completed. Average Score: {sum(r.score for r in results) / len(results):.4f}")
        return results

# --- 示例:实现一个具体的文本分类评测模型 ---
from transformers import AutoTokenizer, AutoModelForSequenceClassification
from sklearn.metrics import accuracy_score, precision_recall_fscore_support

class TextClassificationModel(BaseModel):
    """文本分类评测模型示例"""
    def __init__(self, model_name: str, model_path: str):
        super().__init__(model_name)
        self.tokenizer = None
        self.model = None
        self.model_path = model_path
        self.load_model(model_path)

    def load_model(self, model_path: str):
        """加载预训练模型"""
        try:
            self.tokenizer = AutoTokenizer.from_pretrained(model_path)
            self.model = AutoModelForSequenceClassification.from_pretrained(model_path)
            self.model.to(self.device)
            self.model.eval()
            self.logger.info(f"Model loaded from {model_path} and moved to {self.device}")
        except Exception as e:
            self.logger.error(f"Failed to load model: {e}")
            raise

    def predict(self, input_text: str) -> int:
        """对单条文本进行分类预测"""
        inputs = self.tokenizer(input_text, return_tensors="pt", truncation=True, padding=True, max_length=512)
        inputs = {k: v.to(self.device) for k, v in inputs.items()}

        with torch.no_grad():
            outputs = self.model(**inputs)
            logits = outputs.logits
            predicted_class_id = logits.argmax(-1).item()
        return predicted_class_id

    def evaluate(self, prediction: int, ground_truth: int) -> EvaluationResult:
        """计算分类任务的评测指标"""
        # 这里为了演示,我们假设只处理单个样本的评测
        # 在实际应用中,通常会批量计算指标以提高效率
        y_true = [ground_truth]
        y_pred = [prediction]

        accuracy = accuracy_score(y_true, y_pred)
        precision, recall, f1, _ = precision_recall_fscore_support(y_true, y_pred, average='weighted', zero_division=0)

        metrics = {
            'accuracy': accuracy,
            'precision': precision,
            'recall': recall,
            'f1_score': f1
        }

        return EvaluationResult(
            score=accuracy, # 可以使用F1-score或其他指标作为总体分数
            metrics=metrics,
            details={'predicted_class': prediction, 'true_class': ground_truth},
            model_name=self.model_name
        )

# --- 使用示例 ---
if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO)
    
    # 1. 创建评测引擎
    engine = AIEvaluationEngine()
    
    # 2. 创建并注册一个文本分类模型
    # 注意:请替换为你本地的模型路径或HuggingFace模型名
    # text_model = TextClassificationModel("BERT-Classifier", "bert-base-chinese")
    # engine.register_model(text_model)
    
    # 3. 准备评测数据 (示例)
    # sample_texts = ["这部电影太棒了!", "这个产品质量很差。"]
    # sample_labels = [1, 0] # 假设 1 代表正面, 0 代表负面
    
    # 4. 执行评测
    # results = engine.evaluate("BERT-Classifier", sample_texts, sample_labels)
    
    # 5. 打印结果
    # for i, result in enumerate(results):
    #     print(f"Result {i+1}: Score={result.score:.4f}, Metrics={result.metrics}")

3.2 任务调度器 (Task Scheduler)

为了处理大量的并发评测请求,我们设计了一个基于消息队列的异步任务调度系统。

复制代码
# task_scheduler.py
import asyncio
import json
from typing import Dict, Any, Callable
from dataclasses import dataclass, asdict
import aioredis
from celery import Celery
import logging

# --- 使用 Celery 作为任务队列的示例 ---
# 假设 Redis 运行在本地
celery_app = Celery('ai_evaluation_tasks', broker='redis://localhost:6379/0', backend='redis://localhost:6379/0')

@dataclass
class EvaluationTask:
    """评测任务的数据结构"""
    task_id: str
    model_name: str
    input_data: Any
    ground_truth: Any
    callback_url: Optional[str] = None # 用于异步通知结果

@celery_app.task(bind=True)
def run_evaluation(self, task_data: Dict[str, Any]):
    """Celery 任务:执行评测"""
    task = EvaluationTask(**task_data)
    logging.info(f"Task {task.task_id} received. Model: {task.model_name}")
    
    try:
        # --- 这里调用我们之前定义的 AIEvaluationEngine ---
        # 在实际部署中,engine 实例可以是一个全局单例或通过依赖注入获取
        # result = engine.evaluate(task.model_name, [task.input_data], [task.ground_truth])[0]
        
        # 模拟评测过程
        import time; time.sleep(2) # 模拟耗时操作
        result = {"score": 0.95, "metrics": {"accuracy": 0.95}, "model_name": task.model_name} # 模拟结果
        
        logging.info(f"Task {task.task_id} completed successfully.")
        
        # 将结果序列化后返回
        return result
    
    except Exception as e:
        logging.error(f"Task {task.task_id} failed: {e}")
        # 任务失败时,可以选择重试 (Celery 支持自动重试)
        self.retry(countdown=60, max_retries=3) 
        # 或者返回错误信息
        # return {"error": str(e)}

class TaskScheduler:
    """任务调度器"""
    def __init__(self, engine: AIEvaluationEngine):
        self.engine = engine
        self.logger = logging.getLogger(__name__)

    def submit_task(self, task: EvaluationTask) -> str:
        """提交一个评测任务到队列"""
        try:
            # 使用 Celery 的 delay 方法异步执行任务
            job = run_evaluation.delay(asdict(task))
            self.logger.info(f"Task {task.task_id} submitted. Celery Job ID: {job.id}")
            return job.id # 返回 Celery 的任务 ID,可用于查询状态
        except Exception as e:
            self.logger.error(f"Failed to submit task {task.task_id}: {e}")
            raise

    def get_task_status(self, celery_task_id: str) -> str:
        """查询任务状态"""
        job = run_evaluation.AsyncResult(celery_task_id)
        return job.status # PENDING, SUCCESS, FAILURE, RETRY

    def get_task_result(self, celery_task_id: str) -> Any:
        """获取任务结果"""
        job = run_evaluation.AsyncResult(celery_task_id)
        if job.status == 'SUCCESS':
            return job.result
        elif job.status == 'FAILURE':
            return {"error": str(job.result)} # job.result 在失败时保存的是异常信息
        else:
            return {"status": job.status}

3.3 评测指标计算 (Evaluation Metrics)

一个好的评测系统需要多维度的指标来衡量 AI 模型的性能。我们设计了一个可扩展的指标计算模块。

复制代码
# evaluation_metrics.py
import numpy as np
from sklearn.metrics import accuracy_score, precision_recall_fscore_support, confusion_matrix
from typing import Dict, List, Tuple
from dataclasses import dataclass

@dataclass
class MetricResult:
    """单个指标的结果"""
    name: str
    value: float
    description: str

class MetricsCalculator:
    """评测指标计算器"""
    def __init__(self):
        pass

    def calculate_classification_metrics(self, y_true: List[int], y_pred: List[int], average: str = 'weighted') -> Dict[str, MetricResult]:
        """计算分类任务的常用指标"""
        y_true_np = np.array(y_true)
        y_pred_np = np.array(y_pred)
        
        metrics = {}
        
        # 1. Accuracy
        accuracy = accuracy_score(y_true_np, y_pred_np)
        metrics['accuracy'] = MetricResult(name='Accuracy', value=accuracy, description='准确率:正确预测的比例')
        
        # 2. Precision, Recall, F1-Score
        precision, recall, f1, _ = precision_recall_fscore_support(y_true_np, y_pred_np, average=average, zero_division=0)
        metrics['precision'] = MetricResult(name='Precision', value=precision, description='精确率:预测为正类中实际为正类的比例')
        metrics['recall'] = MetricResult(name='Recall', value=recall, description='召回率:实际正类中被正确预测的比例')
        metrics['f1_score'] = MetricResult(name='F1-Score', value=f1, description='F1分数:精确率和召回率的调和平均')
        
        # 3. Confusion Matrix
        cm = confusion_matrix(y_true_np, y_pred_np)
        metrics['confusion_matrix'] = MetricResult(name='Confusion Matrix', value=cm, description='混淆矩阵:展示分类器性能的可视化工具')
        
        return metrics

    def calculate_custom_metric(self, y_true: List[float], y_pred: List[float], metric_func: callable, metric_name: str, description: str) -> MetricResult:
        """计算自定义指标"""
        try:
            value = metric_func(y_true, y_pred)
            return MetricResult(name=metric_name, value=value, description=description)
        except Exception as e:
            # 如果计算失败,返回一个错误值
            return MetricResult(name=metric_name, value=float('nan'), description=f"计算失败: {e}")

# --- 使用示例 ---
if __name__ == "__main__":
    # 模拟真实标签和预测结果
    y_true = [0, 1, 1, 0, 1, 0, 1, 1, 0, 0]
    y_pred = [0, 0, 1, 0, 1, 1, 1, 0, 0, 0]

    calculator = MetricsCalculator()
    metrics = calculator.calculate_classification_metrics(y_true, y_pred)

    print("=== 分类任务评测结果 ===")
    for name, result in metrics.items():
        if name != 'confusion_matrix': # 混淆矩阵是数组,不直接打印值
            print(f"{result.name}: {result.value:.4f} - {result.description}")
        else:
            print(f"{result.name}: \n{result.value}")

4.系统集成与 API 设计

为了让整个系统能够协同工作,我们需要设计清晰的 API 接口。这里我们使用 FastAPI 来快速构建高性能的 API 服务。

复制代码
# api_service.py
from fastapi import FastAPI, HTTPException, BackgroundTasks
from pydantic import BaseModel
from typing import List, Any, Optional
import uuid
from task_scheduler import TaskScheduler, EvaluationTask
from ai_evaluation_engine import AIEvaluationEngine, TextClassificationModel

# --- 初始化核心组件 ---
app = FastAPI(title="AI 自动化评测系统", version="1.0.0")
engine = AIEvaluationEngine()
scheduler = TaskScheduler(engine)

# --- 注册模型 (在实际应用中,这部分可以通过配置文件或数据库动态管理) ---
# text_model = TextClassificationModel("BERT-Classifier", "path/to/your/model")
# engine.register_model(text_model)

# --- Pydantic 模型,用于请求和响应的验证 ---
class EvaluateRequest(BaseModel):
    model_name: str
    input_data: List[Any] # 根据模型类型,这里可以是文本、图像路径等
    ground_truth: List[Any]

class EvaluateResponse(BaseModel):
    task_id: str
    message: str

class TaskStatusResponse(BaseModel):
    task_id: str
    status: str
    result: Optional[Any] = None

# --- API 路由 ---
@app.post("/evaluate", response_model=EvaluateResponse)
async def submit_evaluation_task(request: EvaluateRequest, background_tasks: BackgroundTasks):
    """提交一个异步评测任务"""
    task_id = str(uuid.uuid4())
    # 这里简化处理,只提交第一个样本进行评测
    task = EvaluationTask(
        task_id=task_id,
        model_name=request.model_name,
        input_data=request.input_data[0],
        ground_truth=request.ground_truth[0]
    )
    
    celery_task_id = scheduler.submit_task(task)
    
    return EvaluateResponse(task_id=celery_task_id, message="Task submitted successfully.")

@app.get("/task/{task_id}/status", response_model=TaskStatusResponse)
async def get_task_status(task_id: str):
    """查询任务状态和结果"""
    status = scheduler.get_task_status(task_id)
    result = None
    if status == 'SUCCESS':
        result = scheduler.get_task_result(task_id)
    return TaskStatusResponse(task_id=task_id, status=status, result=result)

@app.get("/models")
async def list_available_models():
    """列出当前可用的评测模型"""
    return {"available_models": list(engine.models.keys())}

@app.get("/health")
async def health_check():
    """系统健康检查接口"""
    return {"status": "healthy", "engine_models_count": len(engine.models)}

# --- 运行应用 ---
# 命令行运行: `uvicorn api_service:app --reload`

5.部署与运维

最后,我们将整个应用容器化,并使用 Docker Compose 进行一键部署。

复制代码
# docker-compose.yml
version: '3.8'

services:
  # 1. Redis (作为 Celery 的 Broker 和 Backend)
  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data

  # 2. Celery Worker (执行评测任务的后台进程)
  celery-worker:
    build: .
    command: celery -A task_scheduler.celery_app worker --loglevel=info --concurrency=4
    volumes:
      - ./models:/app/models # 挂载本地模型目录
    depends_on:
      - redis
    environment:
      - CELERY_BROKER_URL=redis://redis:6379/0
      - CELERY_RESULT_BACKEND=redis://redis:6379/0

  # 3. FastAPI 应用
  api:
    build: .
    command: uvicorn api_service:app --host 0.0.0.0 --port 8000 --reload
    ports:
      - "8000:8000"
    volumes:
      - ./:/app
    depends_on:
      - redis
      - celery-worker
    environment:
      - CELERY_BROKER_URL=redis://redis:6379/0
      - CELERY_RESULT_BACKEND=redis://redis:6379/0

  # 4. (可选) 一个简单的 Web 前端
  # frontend:
  #   build: ./frontend
  #   ports:
  #     - "3000:3000"

volumes:
  redis_data:

6.效果预览

7.总结

通过 Vibe Coding 的方式,我们成功地构建了一个模块化、可扩展的 AI 自动化评测系统。这个系统不仅能够自动化地执行模型评测任务,还提供了丰富的 API 接口和灵活的部署方案。

未来,我们计划从以下几个方面进行优化和扩展:

  • 支持更多模型和任务类型:目前系统以文本分类为例,未来可以扩展到图像识别、语音识别、生成式 AI 等多种任务。
  • 引入更丰富的评测指标:除了准确率、F1 分数等基础指标,还可以引入鲁棒性、公平性、可解释性等更高级的评测维度。
  • 构建可视化报表系统:开发一个强大的前端界面,将评测结果以图表、仪表盘等形式直观地展示出来。
  • 集成 MLOps 流程:将评测系统与模型训练、部署、监控等 MLOps 流程深度集成,形成一个完整的 AI 应用生命周期管理平台。

希望本文能为您在构建自己的 AI 评测系统时提供一些思路和参考。Happy Coding!

最后,提供一键生成 Prompt 描述:

复制代码
请为我生成一个完整的 AI 自动化评测系统,包含以下所有模块:

【1. 后端架构模块】
- FastAPI 应用主体和路由配置
- Celery 异步任务队列配置
- Redis 连接和缓存管理
- PostgreSQL 数据库模型
- 统一的配置管理
- 错误处理和日志系统

【2. AI 评测引擎模块】
- 可扩展的模型基类定义
- BERT 文本分类模型实现
- GPT 文本生成模型实现
- GPU 加速工具类
- 批处理优化逻辑
- 内存管理和缓存机制

【3. 评测指标模块】
- 分类指标计算器 (Accuracy, Precision, Recall, F1)
- 回归指标计算器 (MAE, MSE, R²)
- 自定义指标基类
- 指标可视化工具
- 评测报告生成器

【4. 任务调度模块】
- Celery 任务定义和装饰器
- 任务提交和状态管理
- 任务优先级配置
- 任务重试机制
- 并发控制设置

【5. API 接口模块】
- FastAPI 路由和请求验证
- Pydantic 请求/响应模型
- 认证和授权中间件
- 错误响应处理
- OpenAPI 文档

【6. Docker 部署模块】
- 多阶段构建 Dockerfile
- Docker Compose 服务配置
- 环境变量管理
- 卷挂载和端口映射
- 健康检查配置

【7. 监控日志模块】
- Prometheus 指标收集
- Grafana 仪表盘配置
- 结构化日志输出
- 日志聚合和分析
- 告警规则定义

【8. 测试套件模块】
- pytest 测试框架配置
- 单元测试用例
- 集成测试脚本
- 性能基准测试
- 测试数据和 fixtures

【9. 前端界面模块】
- HTML5 响应式布局
- CSS3 样式和动画
- JavaScript 交互逻辑
- ECharts 数据可视化
- API 调用封装

【10. 文档配置模块】
- 项目 README 文档
- API 接口文档
- 部署指南
- 开发规范
- 使用示例

技术要求:
- Python 3.9+, FastAPI, Celery, Redis
- PyTorch, Transformers, scikit-learn
- PostgreSQL, Docker, Nginx
- pytest, Prometheus, Grafana
- HTML5, CSS3, JavaScript

输出要求:
1. 创建完整的项目目录结构
2. 生成所有核心代码文件
3. 提供配置文件和脚本
4. 包含部署和运维文件
5. 提供详细的文档说明
6. 给出基础使用示例

项目结构示例:
ai-evaluation-system/
├── backend/
│   ├── api/
│   ├── core/
│   ├── models/
│   ├── tasks/
│   ├── tests/
│   ├── requirements.txt
│   └── Dockerfile
├── frontend/
│   ├── index.html
│   ├── static/
│   └── app.js
├── deploy/
│   ├── docker-compose.yml
│   └── kubernetes.yaml
├── docs/
│   └── *.md
└── examples/
    └── basic_usage.py

View Code

8.结束语

这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!

另外,博主出新书了《Hadoop与Spark大数据全景解析》、同时已出版的《深入理解Hive》、《Kafka并不难学》和《Hadoop大数据挖掘从入门到进阶实战》也可以和新书配套使用,喜欢的朋友或同学, 可以在公告栏那里点击购买链接购买博主的书进行学习,在此感谢大家的支持。关注下面公众号,根据提示,可免费获取书籍的教学视频。

相关推荐
m0_603888711 小时前
FineInstructions Scaling Synthetic Instructions to Pre-Training Scale
人工智能·深度学习·机器学习·ai·论文速览
爬台阶的蚂蚁1 小时前
RAG概念和使用
ai·rag
undsky_1 小时前
【RuoYi-SpringBoot3-Pro】:将 AI 编程融入传统 java 开发
java·人工智能·spring boot·ai·ai编程
AI应用开发实战派2 小时前
AI人工智能中Bard的智能电子商务优化
人工智能·ai·bard
AI原生应用开发2 小时前
AIGC领域Bard在通信领域的内容创作
ai·aigc·bard
唐诺2 小时前
深入了解AI
人工智能·ai
ZEGO即构开发者2 小时前
如何用一句话让AI集成 ZEGO 产品
ai·实时互动·实时音视频·rtc
阿杰学AI2 小时前
AI核心知识76——大语言模型之RAG 2.0(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·rag·检索增强生成·rag2.0
GuoDongOrange3 小时前
智能体来了从 0 到 1:工作流在智能体系统中的真实作用
ai·智能体·从0到1·智能体来了·智能体来了从0到1
爱吃涮肉3 小时前
# 第二章:ClaudeCode核心功能(详细版)
ai