AI大模型应用开发实战:从Python环境搭建到DeepSeek API调用
AI大模型应用开发全流程实战从环境搭建到DeepSeek模型调用最近在AI大模型应用开发过程中很多开发者反馈环境配置是最容易卡壳的环节。本文将从LLM基础认知出发通过完整的Python环境搭建、FastAPI后端开发到实际调用DeepSeek模型的完整流程帮助大家系统掌握AI应用开发的核心技能。无论你是刚接触AI开发的新手还是有一定Python基础想深入大模型应用的开发者都能通过本文获得实用的开发经验。我们将从零开始一步步构建一个可运行的AI大模型应用。1. AI大模型基础认知与开发环境规划1.1 什么是LLM大模型大型语言模型Large Language ModelLLM是基于深度学习技术训练的自然语言处理模型能够理解和生成人类语言。当前主流的LLM如GPT系列、Claude、DeepSeek等都在各种自然语言任务上表现出色。LLM的核心特点包括参数规模巨大通常包含数十亿到数万亿个参数预训练微调先在大量文本数据上预训练再针对特定任务微调多任务能力可处理文本生成、问答、翻译、代码编写等多种任务1.2 AI应用开发的技术栈选择对于AI大模型应用开发我们推荐以下技术组合编程语言Python 3.8AI生态最完善Web框架FastAPI异步支持好自动生成API文档模型接入DeepSeek API性价比高中文支持好开发工具VSCode或PyCharm环境管理Conda或venv1.3 环境准备清单在开始具体操作前请确保你的系统满足以下要求操作系统Windows 10/11, macOS 10.14, 或 Linux Ubuntu 18.04内存至少8GB推荐16GB以上存储空间至少10GB可用空间网络连接稳定的互联网连接用于下载依赖和调用API2. Python环境搭建与配置2.1 Python安装与验证首先我们需要安装Python 3.8或更高版本。以下是各操作系统的安装方法Windows系统安装访问Python官网下载最新版本的安装包运行安装程序务必勾选Add Python to PATH选项选择自定义安装确保安装pip包管理工具macOS系统安装# 使用Homebrew安装 brew install python3.11 # 或者从Python官网下载安装包Linux系统安装# Ubuntu/Debian sudo apt update sudo apt install python3 python3-pip python3-venv # CentOS/RHEL sudo yum install python3 python3-pip安装完成后验证Python是否安装成功python --version # 或 python3 --version pip --version2.2 虚拟环境配置使用虚拟环境可以避免项目间的依赖冲突是Python开发的最佳实践。创建虚拟环境# 创建项目目录 mkdir ai-llm-app cd ai-llm-app # 创建虚拟环境 python -m venv venv # 激活虚拟环境 # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate虚拟环境常用命令# 激活环境后提示符会显示环境名称 (venv) $ pip list # 查看已安装包 # 退出虚拟环境 deactivate # 重新激活 source venv/bin/activate # macOS/Linux venv\Scripts\activate # Windows2.3 开发工具配置推荐使用VSCode进行开发安装以下扩展提升开发效率Python扩展Microsoft官方Pylance类型检查和支持autoDocstring自动生成文档字符串GitLens版本控制可视化3. 项目依赖管理与核心包安装3.1 创建requirements.txt在项目根目录创建requirements.txt文件定义项目依赖fastapi0.104.1 uvicorn0.24.0 python-dotenv1.0.0 requests2.31.0 pydantic2.5.0 httpx0.25.2 aiofiles23.2.1 jinja23.1.23.2 安装依赖包在激活的虚拟环境中安装所有依赖pip install -r requirements.txt # 如果需要单独安装某个包 pip install fastapi uvicorn3.3 依赖版本管理最佳实践为了避免版本冲突建议使用精确版本号# 生成当前环境的确切版本要求 pip freeze requirements.txt # 安装时使用精确版本 pip install fastapi0.104.1 uvicorn0.24.04. FastAPI框架基础与项目结构4.1 FastAPI优势与特性FastAPI是现代、快速高性能的Web框架具有以下特点自动API文档基于OpenAPI标准自动生成交互式文档类型提示利用Python类型提示提供更好的编辑器支持异步支持原生支持async/await语法数据验证基于Pydantic的自动数据验证4.2 项目目录结构设计创建标准的FastAPI项目结构ai-llm-app/ ├── app/ │ ├── __init__.py │ ├── main.py # 应用入口 │ ├── models/ # 数据模型 │ │ ├── __init__.py │ │ └── chat.py │ ├── services/ # 业务逻辑 │ │ ├── __init__.py │ │ └── llm_service.py │ ├── routers/ # 路由模块 │ │ ├── __init__.py │ │ └── chat.py │ └── config.py # 配置文件 ├── tests/ # 测试文件 ├── static/ # 静态文件 ├── templates/ # 模板文件 ├── requirements.txt # 依赖列表 ├── .env.example # 环境变量示例 └── README.md # 项目说明4.3 创建基础FastAPI应用创建app/main.py文件作为应用入口from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware import uvicorn from app.routers import chat from app.config import settings # 创建FastAPI应用实例 app FastAPI( titleAI大模型应用API, description基于FastAPI和DeepSeek的AI应用后端, version1.0.0 ) # 配置CORS中间件 app.add_middleware( CORSMiddleware, allow_origins[*], # 生产环境应限制具体域名 allow_credentialsTrue, allow_methods[*], allow_headers[*], ) # 注册路由 app.include_router(chat.router, prefix/api/v1, tags[chat]) app.get(/) async def root(): 健康检查端点 return {message: AI大模型应用服务运行正常, status: healthy} app.get(/health) async def health_check(): 健康检查接口 return {status: ok, timestamp: 2024-01-01T00:00:00Z} if __name__ __main__: uvicorn.run( app.main:app, host0.0.0.0, port8000, reloadTrue # 开发模式开启热重载 )5. DeepSeek API接入与配置5.1 DeepSeek API介绍DeepSeek是国内优秀的AI大模型服务提供强大的自然语言处理能力。其主要特点包括支持多种模型版本deepseek-v4-pro等提供RESTful API接口支持流式响应具有竞争力的价格策略5.2 API密钥获取与配置首先需要获取DeepSeek API密钥访问DeepSeek官方网站注册账号进入控制台创建API密钥妥善保存密钥信息创建配置文件app/config.pyimport os from pydantic_settings import BaseSettings from typing import Optional class Settings(BaseSettings): 应用配置类 # API配置 api_title: str AI大模型应用API api_version: str 1.0.0 api_prefix: str /api/v1 # DeepSeek配置 deepseek_api_key: str deepseek_base_url: str https://api.deepseek.com/v1 deepseek_model: str deepseek-v4-pro # 服务器配置 host: str 0.0.0.0 port: int 8000 reload: bool True class Config: env_file .env # 创建配置实例 settings Settings() # 环境变量验证 if not settings.deepseek_api_key: raise ValueError(DEEPSEEK_API_KEY环境变量未设置)创建.env文件不要提交到版本控制DEEPSEEK_API_KEYyour_actual_api_key_here DEEPSEEK_BASE_URLhttps://api.deepseek.com/v1 DEEPSEEK_MODELdeepseek-v4-pro5.3 创建LLM服务类创建app/services/llm_service.py实现DeepSeek API调用import httpx import json from typing import AsyncGenerator, Dict, Any, Optional from app.config import settings import logging logger logging.getLogger(__name__) class LLMService: LLM服务类封装DeepSeek API调用 def __init__(self): self.api_key settings.deepseek_api_key self.base_url settings.deepseek_base_url self.model settings.deepseek_model self.headers { Authorization: fBearer {self.api_key}, Content-Type: application/json } async def chat_completion( self, messages: list, temperature: float 0.7, max_tokens: int 2000, stream: bool False ) - Dict[str, Any]: 调用DeepSeek聊天补全API Args: messages: 对话消息列表 temperature: 生成温度0-1 max_tokens: 最大生成长度 stream: 是否使用流式响应 Returns: API响应数据 url f{self.base_url}/chat/completions data { model: self.model, messages: messages, temperature: temperature, max_tokens: max_tokens, stream: stream } try: async with httpx.AsyncClient(timeout30.0) as client: response await client.post(url, headersself.headers, jsondata) response.raise_for_status() return response.json() except httpx.HTTPStatusError as e: logger.error(fAPI请求失败: {e.response.status_code} - {e.response.text}) raise except Exception as e: logger.error(fAPI调用异常: {str(e)}) raise async def stream_chat_completion( self, messages: list, temperature: float 0.7, max_tokens: int 2000 ) - AsyncGenerator[str, None]: 流式调用DeepSeek API Args: messages: 对话消息列表 temperature: 生成温度 max_tokens: 最大生成长度 Yields: 流式响应片段 url f{self.base_url}/chat/completions data { model: self.model, messages: messages, temperature: temperature, max_tokens: max_tokens, stream: True } try: async with httpx.AsyncClient(timeout60.0) as client: async with client.stream(POST, url, headersself.headers, jsondata) as response: response.raise_for_status() async for line in response.aiter_lines(): if line.startswith(data: ): chunk line[6:] if chunk.strip() [DONE]: break try: data json.loads(chunk) if choices in data and len(data[choices]) 0: delta data[choices][0].get(delta, {}) if content in delta: yield delta[content] except json.JSONDecodeError: continue except Exception as e: logger.error(f流式API调用异常: {str(e)}) raise # 创建全局服务实例 llm_service LLMService()6. 数据模型与API路由设计6.1 定义数据模型创建app/models/chat.py定义请求响应模型from pydantic import BaseModel, Field from typing import List, Optional, Dict, Any from enum import Enum class MessageRole(str, Enum): 消息角色枚举 SYSTEM system USER user ASSISTANT assistant class ChatMessage(BaseModel): 聊天消息模型 role: MessageRole content: str class Config: use_enum_values True class ChatRequest(BaseModel): 聊天请求模型 messages: List[ChatMessage] Field(..., min_items1) temperature: Optional[float] Field(0.7, ge0.0, le2.0) max_tokens: Optional[int] Field(2000, ge1, le4000) stream: Optional[bool] False class Config: schema_extra { example: { messages: [ {role: system, content: 你是一个有用的AI助手}, {role: user, content: 请介绍Python编程语言} ], temperature: 0.7, max_tokens: 1000, stream: False } } class ChatResponse(BaseModel): 聊天响应模型 success: bool message: Optional[str] None data: Optional[Dict[str, Any]] None error: Optional[str] None class Config: schema_extra { example: { success: True, message: 请求成功, data: { id: chatcmpl-123, object: chat.completion, created: 1677652288, model: deepseek-v4-pro, choices: [ { index: 0, message: { role: assistant, content: Python是一种高级编程语言... }, finish_reason: stop } ], usage: { prompt_tokens: 9, completion_tokens: 12, total_tokens: 21 } } } } class StreamResponse(BaseModel): 流式响应模型 id: str object: str chat.completion.chunk created: int model: str choices: List[Dict[str, Any]]6.2 实现聊天路由创建app/routers/chat.py实现聊天APIfrom fastapi import APIRouter, HTTPException, BackgroundTasks from fastapi.responses import StreamingResponse import json import time from typing import List from app.models.chat import ChatRequest, ChatResponse, ChatMessage, StreamResponse from app.services.llm_service import llm_service import logging logger logging.getLogger(__name__) router APIRouter() router.post(/chat/completions, response_modelChatResponse) async def chat_completion(request: ChatRequest): AI聊天补全接口 - **messages**: 对话消息列表必须包含用户消息 - **temperature**: 生成创造性0-2默认0.7 - **max_tokens**: 最大生成长度1-4000默认2000 - **stream**: 是否使用流式响应默认False try: # 验证消息格式 if not any(msg.role user for msg in request.messages): raise HTTPException( status_code400, detail消息列表必须包含至少一条用户消息 ) # 调用LLM服务 if request.stream: # 流式响应通过单独的端点处理 raise HTTPException( status_code400, detail流式请求请使用 /chat/completions/stream 端点 ) else: result await llm_service.chat_completion( messages[msg.dict() for msg in request.messages], temperaturerequest.temperature, max_tokensrequest.max_tokens ) return ChatResponse( successTrue, message请求成功, dataresult ) except HTTPException: raise except Exception as e: logger.error(f聊天请求处理失败: {str(e)}) raise HTTPException( status_code500, detailf服务内部错误: {str(e)} ) router.post(/chat/completions/stream) async def chat_completion_stream(request: ChatRequest): 流式聊天补全接口 返回Server-Sent Events流 try: # 验证消息格式 if not any(msg.role user for msg in request.messages): raise HTTPException( status_code400, detail消息列表必须包含至少一条用户消息 ) async def generate(): 生成流式响应 try: async for chunk in llm_service.stream_chat_completion( messages[msg.dict() for msg in request.messages], temperaturerequest.temperature, max_tokensrequest.max_tokens ): # 构建SSE格式数据 data { id: fchatcmpl-{int(time.time())}, object: chat.completion.chunk, created: int(time.time()), model: deepseek-v4-pro, choices: [ { index: 0, delta: {content: chunk}, finish_reason: None } ] } yield fdata: {json.dumps(data, ensure_asciiFalse)}\n\n # 发送结束标记 end_data { id: fchatcmpl-{int(time.time())}, object: chat.completion.chunk, created: int(time.time()), model: deepseek-v4-pro, choices: [ { index: 0, delta: {}, finish_reason: stop } ] } yield fdata: {json.dumps(end_data, ensure_asciiFalse)}\n\n yield data: [DONE]\n\n except Exception as e: logger.error(f流式生成异常: {str(e)}) error_data { error: { message: f流式响应生成失败: {str(e)}, type: internal_error } } yield fdata: {json.dumps(error_data, ensure_asciiFalse)}\n\n return StreamingResponse( generate(), media_typetext/event-stream, headers{ Cache-Control: no-cache, Connection: keep-alive, } ) except HTTPException: raise except Exception as e: logger.error(f流式聊天请求处理失败: {str(e)}) raise HTTPException( status_code500, detailf服务内部错误: {str(e)} ) router.get(/chat/models) async def list_models(): 获取支持的模型列表 return { success: True, data: { models: [ { id: deepseek-v4-pro, name: DeepSeek V4 Pro, description: DeepSeek最新版本模型, max_tokens: 4000 } ] } }7. 应用测试与验证7.1 启动应用服务在项目根目录创建启动脚本run.pyimport uvicorn from app.config import settings if __name__ __main__: uvicorn.run( app.main:app, hostsettings.host, portsettings.port, reloadsettings.reload, log_levelinfo )启动应用python run.py服务启动后访问 http://localhost:8000/docs 查看自动生成的API文档。7.2 API接口测试使用curl测试聊天接口# 测试健康检查 curl http://localhost:8000/health # 测试聊天接口 curl -X POST http://localhost:8000/api/v1/chat/completions \ -H Content-Type: application/json \ -d { messages: [ {role: system, content: 你是一个有用的AI助手}, {role: user, content: 请用Python写一个Hello World程序} ], temperature: 0.7, max_tokens: 500 }7.3 编写单元测试创建tests/test_chat.pyimport pytest from fastapi.testclient import TestClient from app.main import app client TestClient(app) def test_health_check(): 测试健康检查接口 response client.get(/health) assert response.status_code 200 assert response.json()[status] ok def test_chat_completion(): 测试聊天补全接口 test_data { messages: [ {role: user, content: 你好请简单介绍一下自己} ], temperature: 0.7, max_tokens: 100 } response client.post(/api/v1/chat/completions, jsontest_data) assert response.status_code in [200, 400] # 400可能是API密钥未配置 if response.status_code 200: data response.json() assert data[success] True assert data in data def test_invalid_message_format(): 测试无效消息格式 test_data { messages: [ {role: system, content: 系统消息} ], temperature: 0.7, max_tokens: 100 } response client.post(/api/v1/chat/completions, jsontest_data) assert response.status_code 400运行测试pytest tests/ -v8. 常见问题与解决方案8.1 环境配置问题问题1Python版本不兼容解决方案确保使用Python 3.8版本使用pyenv或conda管理多版本Python问题2虚拟环境激活失败# Windows PowerShell权限问题 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser # macOS/Linux权限问题 chmod x venv/bin/activate问题3依赖安装失败解决方案使用国内镜像源加速下载 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple8.2 API调用问题问题4DeepSeek API密钥错误错误信息API error: 401 Unauthorized 解决方案检查DEEPSEEK_API_KEY环境变量是否正确设置问题5模型名称不支持错误信息API error: 400 the supported api model names are deepseek-v4-pro or deepseek 解决方案确保使用正确的模型名称如deepseek-v4-pro问题6请求超时解决方案增加超时时间优化网络连接使用异步客户端8.3 FastAPI开发问题问题7CORS跨域问题解决方案正确配置CORS中间件确保前端能正常访问API问题8热重载不工作解决方案确保使用uvicorn的reload参数检查文件监视配置9. 性能优化与最佳实践9.1 异步编程优化充分利用FastAPI的异步特性提升性能# 好的实践使用异步HTTP客户端 import httpx async def call_external_api(): async with httpx.AsyncClient() as client: response await client.get(https://api.example.com/data) return response.json() # 避免的实践使用同步请求库 import requests # 在异步环境中会阻塞事件循环 def call_external_api_sync(): # 不推荐 response requests.get(https://api.example.com/data) return response.json()9.2 错误处理与日志记录实现完善的错误处理和日志记录import logging from fastapi import HTTPException import traceback # 配置日志 logging.basicConfig( levellogging.INFO, format%(asctime)s - %(name)s - %(levelname)s - %(message)s ) class RobustLLMService: async def chat_with_retry(self, messages, max_retries3): 带重试机制的聊天调用 for attempt in range(max_retries): try: return await self.chat_completion(messages) except httpx.HTTPStatusError as e: if e.response.status_code 500: # 服务器错误重试 if attempt max_retries - 1: raise await asyncio.sleep(2 ** attempt) # 指数退避 else: raise except Exception as e: logging.error(fAttempt {attempt 1} failed: {str(e)}) if attempt max_retries - 1: raise HTTPException( status_code500, detail服务暂时不可用请稍后重试 )9.3 安全最佳实践确保API安全性from fastapi import Depends, HTTPException, status from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials security HTTPBearer() async def verify_token(credentials: HTTPAuthorizationCredentials Depends(security)): Token验证依赖 # 在实际项目中实现具体的token验证逻辑 if credentials.credentials ! expected_token: raise HTTPException( status_codestatus.HTTP_401_UNAUTHORIZED, detailInvalid authentication credentials, headers{WWW-Authenticate: Bearer}, ) return credentials # 在需要认证的路由中使用 router.post(/secure/chat, dependencies[Depends(verify_token)]) async def secure_chat(): # 安全聊天端点 pass10. 项目部署与生产环境配置10.1 生产环境配置创建生产环境配置文件config/production.pyimport os class ProductionConfig: 生产环境配置 # 安全配置 DEBUG False TESTING False # API配置 API_TITLE AI大模型应用API API_VERSION 1.0.0 # DeepSeek配置 DEEPSEEK_API_KEY os.getenv(DEEPSEEK_API_KEY) DEEPSEEK_BASE_URL https://api.deepseek.com/v1 DEEPSEEK_MODEL deepseek-v4-pro # 服务器配置 HOST 0.0.0.0 PORT 8000 RELOAD False # 生产环境关闭热重载 # 日志配置 LOG_LEVEL INFO LOG_FILE /var/log/ai-app.log10.2 Docker容器化部署创建DockerfileFROM python:3.11-slim WORKDIR /app # 复制依赖文件 COPY requirements.txt . # 安装依赖 RUN pip install --no-cache-dir -r requirements.txt # 复制应用代码 COPY app/ ./app/ COPY run.py . # 创建非root用户 RUN useradd -m -u 1000 appuser chown -R appuser:appuser /app USER appuser # 暴露端口 EXPOSE 8000 # 启动命令 CMD [python, run.py]创建docker-compose.ymlversion: 3.8 services: ai-app: build: . ports: - 8000:8000 environment: - DEEPSEEK_API_KEY${DEEPSEEK_API_KEY} restart: unless-stopped volumes: - ./logs:/app/logs10.3 监控与健康检查实现应用监控端点import psutil import time from fastapi import APIRouter router APIRouter() router.get(/metrics) async def get_metrics(): 获取应用运行指标 memory psutil.virtual_memory() disk psutil.disk_usage(/) return { timestamp: time.time(), system: { cpu_percent: psutil.cpu_percent(), memory_used: memory.used, memory_total: memory.total, disk_used: disk.used, disk_total: disk.total }, application: { status: healthy, uptime: time.time() - start_time } } start_time time.time()通过本文的完整流程你已经掌握了从环境搭建到AI大模型应用开发的全套技能。在实际项目中记得根据具体需求调整配置并始终关注安全性和性能优化。

相关新闻

2026中国电子元器件分销行业格局:谁在领跑,谁在追赶

2026中国电子元器件分销行业格局:谁在领跑,谁在追赶

中国电子元器件分销行业正在经历一轮深层洗牌。2026年AI基建需求爆发、存储芯片缺货、国产替代加速三重因素叠加,行业格局正在重塑。这篇文章从行业分析视角,梳理当前分销赛道的主要玩家和竞争维度。行业格局的三个梯队:梯队代表平台核心特征…

2026/7/29 2:10:16阅读更多 →
MOSFET选型与驱动电路设计实战指南:从核心参数到PCB布局

MOSFET选型与驱动电路设计实战指南:从核心参数到PCB布局

1. 项目概述:为什么MOSFET值得你花时间?如果你在玩单片机、做电源,或者捣鼓任何带开关功能的电子玩意儿,迟早会碰到一个绕不开的坎——MOSFET。我第一次被它“教育”是在大学做智能车,用单片机IO口直接驱动电机&#x…

2026/7/29 2:10:15阅读更多 →
2026无人机场品牌深度解析:华测AH50自动巡检系统应用指南

2026无人机场品牌深度解析:华测AH50自动巡检系统应用指南

三伏天里,输电线路巡检员顶着烈日翻山越岭,一趟巡检下来衣服全湿透,还未必能发现杆塔上的隐蔽缺陷。据《中国地理信息产业发展报告(2025)》显示,我国地理信息产业总产值近5年复合增长率为5.6%,近…

2026/7/29 2:08:15阅读更多 →
SpringBoot漫画阅读网站毕业设计实战指南

SpringBoot漫画阅读网站毕业设计实战指南

1. 项目背景与核心需求这个SpringBoot漫画阅读网站的设计初衷,是为计算机专业学生提供一个完整的毕业设计参考方案。从技术选型来看,它采用了当前企业级开发中最主流的SpringBoot框架,结合了漫画阅读这个具有明确用户场景的垂直领域。为什么选…

2026/7/29 3:32:31阅读更多 →
阿里云OSS大文件直传实战:STS临时凭证避坑与前端分片上传优化

阿里云OSS大文件直传实战:STS临时凭证避坑与前端分片上传优化

1. 项目概述:一次由STS临时凭证引发的“血案” 最近在重构一个内部文件管理系统时,我遇到了一个相当典型却又容易踩坑的场景:使用阿里云OSS的对象存储服务,通过后台签发STS(Security Token Service)临时凭…

2026/7/29 3:32:31阅读更多 →
Spring @Autowired注解原理深度解析:从依赖注入到BeanPostProcessor

Spring @Autowired注解原理深度解析:从依赖注入到BeanPostProcessor

1. 项目概述:从“自动注入”到“依赖查找”的魔法在Spring框架的日常开发中,Autowired注解几乎是我们每天都要打交道的“老朋友”。我们习惯于在字段、构造器或者Setter方法上随手加上一个Autowired,然后Spring容器就会像变魔术一样&#xff…

2026/7/29 3:32:31阅读更多 →
Matlab高级绘图:从对象模型到出版级图表制作全攻略

Matlab高级绘图:从对象模型到出版级图表制作全攻略

1. 项目概述:为什么你的Matlab图总是不够“高级”?每次看到别人论文里那些清晰、美观、信息量爆炸的Matlab图,再看看自己画出来的那些默认样式、配色辣眼、排版混乱的“草图”,是不是总感觉差了点什么?我用了十多年Mat…

2026/7/29 3:32:31阅读更多 →
Java分布式事务JTA实战:从核心原理到Spring Boot多数据源应用

Java分布式事务JTA实战:从核心原理到Spring Boot多数据源应用

1. 项目概述:为什么分布式事务是Java开发者的必修课? 如果你正在开发一个微服务架构的电商系统,用户下单这个动作,背后可能涉及订单服务创建订单、库存服务扣减库存、账户服务冻结余额、积分服务增加积分。这四个操作分别在不同的…

2026/7/29 3:32:31阅读更多 →
CTFshow Web477-479实战:文件上传、包含与命令执行漏洞剖析

CTFshow Web477-479实战:文件上传、包含与命令执行漏洞剖析

1. 项目概述:一次聚焦CMS核心漏洞的实战演练最近在CTFshow平台上刷题,从Web477到Web479这三道题,可以说是把CMS(内容管理系统)里几个最经典、也最要命的漏洞类型给串起来了。很多刚入门Web安全的朋友,一听到…

2026/7/29 3:30:31阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“! 在构建复杂的 Agent 系统时,我们经常会遇到这样的场景:Agent 正在执行一个多步骤的任务,比如“下单购买商品”,但执行到一半时,我们…

2026/7/29 0:01:46阅读更多 →
自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

近日,国际专注开放式技术研发的声学品牌Nank南卡,正式官宣实力艺人曾舜晞担任品牌代言人。消息一经发出便轰动全网。为什么耳机品牌不选择流量明星、老牌歌手?而且是选择曾舜晞?让我们一起来探索一下!比起短期的流量&a…

2026/7/29 0:01:46阅读更多 →
【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:01:46阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →