DASD-4B-Thinking实战教程:vLLM模型服务API文档生成+Chainlit集成Swagger

news2026/3/18 1:59:14
DASD-4B-Thinking实战教程vLLM模型服务API文档生成Chainlit集成Swagger1. 引言为什么需要为模型服务生成API文档如果你用过vLLM部署过模型肯定遇到过这样的场景模型服务跑起来了接口也能调通但每次想写个前端或者让其他同事调用时都得翻代码、看日志甚至要反复测试才能搞清楚接口的具体参数和返回格式。更麻烦的是当你把服务部署到生产环境需要前后端联调时如果没有清晰的接口文档沟通成本会急剧增加。前端开发会不停地问你“这个参数是必填吗”“返回的JSON结构是什么”“错误码有哪些”这就是我们今天要解决的问题——为vLLM部署的DASD-4B-Thinking模型服务自动生成标准的API文档并通过Chainlit前端集成Swagger UI让接口调用变得一目了然。1.1 本教程能帮你解决什么通过这篇教程你将学会一键生成API文档为vLLM的模型服务自动生成OpenAPI规范的接口文档可视化接口调试通过Swagger UI直接在浏览器中测试所有接口Chainlit前端集成在现有的Chainlit聊天界面中嵌入API文档页面提升开发效率减少沟通成本让团队协作更顺畅1.2 前置准备在开始之前确保你已经使用vLLM成功部署了DASD-4B-Thinking模型服务模型服务正常运行可以通过cat /root/workspace/llm.log查看状态能够通过Chainlit前端正常调用模型如果你还没有完成这些准备工作建议先确保模型服务部署成功再继续下面的步骤。2. DASD-4B-Thinking模型简介在开始技术实现之前我们先简单了解一下DASD-4B-Thinking这个模型的特点这有助于我们理解为什么需要为它生成专门的API文档。2.1 模型的核心能力DASD-4B-Thinking是一个40亿参数的稠密语言模型虽然参数规模不算特别大但在特定任务上表现非常出色长链式思维推理专门针对需要多步推理的任务进行优化数学和科学推理在数学问题、代码生成、科学推理等任务上表现优异高效训练仅使用44.8万训练样本就达到了很好的效果2.2 模型的技术特点这个模型有几个值得注意的技术特点基于Qwen3-4B-Instruct-2507这是一个非思考型的学生模型作为基础分布对齐序列蒸馏从更大的教师模型gpt-oss-120b中蒸馏知识紧凑高效40亿参数在推理时对硬件要求相对友好正是因为这些特点DASD-4B-Thinking在需要复杂推理的场景下特别有用而我们的API文档需要清晰地展示如何调用这些能力。3. vLLM模型服务的API现状分析在开始生成API文档之前我们先看看vLLM默认提供的接口情况。3.1 vLLM默认的API接口当你用vLLM部署模型时它会自动提供几个核心的REST API接口# vLLM服务的主要接口 1. /v1/completions # 文本补全接口 2. /v1/chat/completions # 聊天补全接口 3. /v1/models # 模型信息接口 4. /v1/health # 健康检查接口3.2 当前的问题虽然vLLM提供了这些接口但存在几个实际问题文档不完整vLLM的官方文档比较分散没有集中展示所有接口参数不明确每个接口的具体参数、类型、是否必填等信息不够清晰缺少示例没有提供完整的请求响应示例调试困难需要手动构造请求或使用curl命令测试3.3 我们的解决方案为了解决这些问题我们将使用FastAPI的自动文档生成功能集成Swagger UI提供可视化界面在Chainlit中嵌入文档页面提供完整的接口说明和示例4. 为vLLM服务生成OpenAPI文档现在进入核心部分——如何为已经运行的vLLM服务生成标准的API文档。4.1 理解OpenAPI规范OpenAPI以前叫Swagger是一种用于描述RESTful API的规范。它使用YAML或JSON格式定义API的接口路径和HTTP方法请求参数和响应格式数据类型和验证规则认证方式和错误处理4.2 获取vLLM的OpenAPI文档vLLM服务默认就支持OpenAPI文档只是很多人不知道如何使用。其实很简单# vLLM服务启动后会自动生成OpenAPI文档 # 文档通常可以通过以下路径访问 # http://localhost:8000/docs # 或者 # http://localhost:8000/openapi.json但是vLLM默认的文档可能不够完整我们需要进行一些增强。4.3 创建增强的API文档服务我们可以创建一个简单的FastAPI应用专门用于提供增强版的API文档from fastapi import FastAPI from fastapi.openapi.utils import get_openapi from fastapi.middleware.cors import CORSMiddleware import requests import json app FastAPI(titleDASD-4B-Thinking API文档, descriptionDASD-4B-Thinking模型服务的完整API文档, version1.0.0) # 添加CORS支持方便前端调用 app.add_middleware( CORSMiddleware, allow_origins[*], allow_credentialsTrue, allow_methods[*], allow_headers[*], ) # vLLM服务的地址 VLLM_SERVER_URL http://localhost:8000 app.get(/) async def root(): API文档首页 return { message: DASD-4B-Thinking API文档服务, endpoints: { docs: /docs, redoc: /redoc, openapi.json: /openapi.json, vllm_proxy: /vllm/{path:path} } } app.get(/openapi.json) async def get_openapi_schema(): 获取增强的OpenAPI文档 # 首先获取vLLM原生的OpenAPI文档 try: response requests.get(f{VLLM_SERVER_URL}/openapi.json) vllm_schema response.json() except: # 如果获取失败使用默认的schema vllm_schema get_openapi( titleDASD-4B-Thinking API, version1.0.0, routesapp.routes, ) # 增强文档内容 enhanced_schema enhance_openapi_schema(vllm_schema) return enhanced_schema def enhance_openapi_schema(schema: dict) - dict: 增强OpenAPI文档内容 # 添加模型信息 schema[info][description] # DASD-4B-Thinking 模型API文档 ## 模型介绍 DASD-4B-Thinking是一个40亿参数的稠密语言模型专门用于长链式思维推理。 ## 主要特性 - 支持数学推理和代码生成 - 优化的长文本处理能力 - 高效的推理速度 ## 使用说明 1. 所有接口都需要在Header中添加Authorization: Bearer {token} 2. 文本生成接口支持流式输出 3. 聊天接口支持多轮对话历史 # 添加服务器配置 schema[servers] [ { url: VLLM_SERVER_URL, description: vLLM模型服务 } ] # 增强/completions接口的文档 if /v1/completions in schema[paths]: schema[paths][/v1/completions][post][description] 文本补全接口 用于生成单轮文本补全适合代码生成、文章续写等场景。 ### 示例请求 json { prompt: def fibonacci(n):, max_tokens: 100, temperature: 0.7 } ### 示例响应 json { id: cmpl-123, object: text_completion, created: 1677858242, model: DASD-4B-Thinking, choices: [ { text: if n 1:\n return n\n else:\n return fibonacci(n-1) fibonacci(n-2), index: 0, logprobs: null, finish_reason: length } ], usage: { prompt_tokens: 5, completion_tokens: 45, total_tokens: 50 } } # 增强/chat/completions接口的文档 if /v1/chat/completions in schema[paths]: schema[paths][/v1/chat/completions][post][description] 聊天补全接口 用于多轮对话场景支持系统提示词和用户消息。 ### 消息格式 json [ {role: system, content: 你是一个数学助手}, {role: user, content: 计算11等于多少} ] ### 流式响应 设置stream: true可以启用流式输出适合实时对话场景。 return schema app.api_route(/vllm/{path:path}, methods[GET, POST, PUT, DELETE]) async def proxy_to_vllm(path: str, request: Request): 代理请求到vLLM服务 # 获取请求体 body await request.body() headers dict(request.headers) # 移除host头避免冲突 headers.pop(host, None) # 构建目标URL target_url f{VLLM_SERVER_URL}/{path} # 转发请求 async with httpx.AsyncClient() as client: response await client.request( methodrequest.method, urltarget_url, headersheaders, contentbody, paramsrequest.query_params ) # 返回响应 return Response( contentresponse.content, status_coderesponse.status_code, headersdict(response.headers) ) if __name__ __main__: import uvicorn uvicorn.run(app, host0.0.0.0, port8080)4.4 部署API文档服务将上面的代码保存为api_docs.py然后运行# 安装依赖 pip install fastapi uvicorn httpx # 启动API文档服务 python api_docs.py服务启动后你可以通过以下地址访问http://localhost:8080/docs- Swagger UI界面http://localhost:8080/redoc- ReDoc界面http://localhost:8080/openapi.json- OpenAPI JSON文档5. 在Chainlit中集成Swagger UI现在我们已经有了独立的API文档服务接下来要把它集成到Chainlit前端中这样用户就可以在同一个界面中既使用聊天功能又查看API文档。5.1 修改Chainlit配置文件首先我们需要修改Chainlit的配置文件添加API文档页面# chainlit.md 文件内容 # 欢迎使用DASD-4B-Thinking 欢迎使用DASD-4B-Thinking智能助手这是一个基于40亿参数语言模型的对话系统专门擅长数学推理、代码生成和科学问题解答。 ## 功能特点 - **数学推理**解决复杂的数学问题 - **代码生成**支持多种编程语言 - **科学问答**回答科学相关的问题 - **长文本理解**处理复杂的多步推理 ## 快速开始 1. 在下方输入框输入你的问题 2. 模型会进行多步推理并给出答案 3. 可以追问或要求进一步解释 ## API文档 想要通过代码调用模型查看完整的API文档 [查看API文档](/api-docs) ## 使用技巧 - 问题描述越详细回答越准确 - 对于复杂问题可以要求模型展示推理过程 - 支持多轮对话可以基于之前的回答继续提问5.2 创建API文档页面组件接下来我们需要在Chainlit中添加一个页面来显示Swagger UI# 在Chainlit应用中添加API文档页面 import chainlit as cl from chainlit.input_widget import Select, Slider from fastapi import FastAPI, Request from fastapi.responses import HTMLResponse import os # 创建FastAPI应用Chainlit基于FastAPI app cl.app # 添加API文档页面 app.get(/api-docs, response_classHTMLResponse) async def api_docs_page(request: Request): API文档页面 swagger_html !DOCTYPE html html langzh-CN head meta charsetUTF-8 titleDASD-4B-Thinking API文档/title link relstylesheet typetext/css hrefhttps://unpkg.com/swagger-ui-dist5.9.0/swagger-ui.css link relicon typeimage/png hrefhttps://unpkg.com/swagger-ui-dist5.9.0/favicon-32x32.png style html { box-sizing: border-box; overflow: -moz-scrollbars-vertical; overflow-y: scroll; } *, *:before, *:after { box-sizing: inherit; } body { margin: 0; background: #fafafa; } .top-bar { background: #1b1b1b; color: white; padding: 10px 20px; display: flex; justify-content: space-between; align-items: center; } .back-button { color: white; text-decoration: none; padding: 5px 15px; background: #444; border-radius: 4px; } .back-button:hover { background: #555; } #swagger-ui { margin: 20px; } /style /head body div classtop-bar h2DASD-4B-Thinking API文档/h2 a href/ classback-button返回聊天界面/a /div div idswagger-ui/div script srchttps://unpkg.com/swagger-ui-dist5.9.0/swagger-ui-bundle.js/script script srchttps://unpkg.com/swagger-ui-dist5.9.0/swagger-ui-standalone-preset.js/script script window.onload function() { // 使用我们之前创建的API文档服务 const ui SwaggerUIBundle({ url: http://localhost:8080/openapi.json, // 你的API文档服务地址 dom_id: #swagger-ui, deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], layout: StandaloneLayout, requestInterceptor: function(request) { // 如果需要认证可以在这里添加token // request.headers.Authorization Bearer your-token; return request; } }); window.ui ui; } /script /body /html return HTMLResponse(contentswagger_html) # Chainlit聊天界面的主逻辑 cl.on_chat_start async def start(): 聊天开始时的初始化 # 设置聊天设置 settings await cl.ChatSettings( [ Select( idmodel, label模型选择, values[DASD-4B-Thinking, 其他模型], initial_index0, ), Slider( idtemperature, label温度创造性, initial0.7, min0, max1, step0.1, ), Slider( idmax_tokens, label最大生成长度, initial1024, min100, max4096, step100, ), ] ).send() # 欢迎消息 welcome_msg cl.Message( content 欢迎使用DASD-4B-Thinking智能助手 我是一个专门用于数学推理、代码生成和科学问题解答的AI模型。 ## 我能帮你做什么 1. **数学问题**代数、几何、微积分等 2. **编程帮助**代码生成、调试、优化 3. **科学推理**物理、化学、生物等问题 4. **逻辑思考**复杂问题的多步推理 ## 使用建议 - 问题描述越详细我的回答越准确 - 可以要求我展示推理过程 - 支持多轮对话可以随时追问 ## 想要通过API调用 查看完整的API文档[/api-docs](/api-docs) 现在请问我任何问题吧 , author助手 ) await welcome_msg.send() cl.on_message async def main(message: cl.Message): 处理用户消息 # 获取用户消息 user_message message.content # 显示思考中的消息 thinking_msg cl.Message(content正在思考..., author助手) await thinking_msg.send() try: # 调用vLLM API import requests import json # vLLM API地址 vllm_url http://localhost:8000/v1/chat/completions # 构建请求 payload { model: DASD-4B-Thinking, messages: [ { role: system, content: 你是一个专业的数学和编程助手擅长多步推理。请用清晰、详细的方式回答问题必要时展示推理过程。 }, { role: user, content: user_message } ], temperature: 0.7, max_tokens: 1024, stream: False } # 发送请求 response requests.post(vllm_url, jsonpayload) result response.json() # 获取模型回复 if choices in result and len(result[choices]) 0: reply result[choices][0][message][content] # 更新消息内容 thinking_msg.content reply await thinking_msg.update() else: thinking_msg.content 抱歉我暂时无法回答这个问题。请检查API服务是否正常运行。 await thinking_msg.update() except Exception as e: # 错误处理 thinking_msg.content f调用模型时出现错误{str(e)}\n\n请确保vLLM服务正在运行或者查看API文档获取帮助。 await thinking_msg.update() if __name__ __main__: # 运行Chainlit应用 # 注意Chainlit会自动处理FastAPI应用的运行 pass5.3 配置Chainlit运行参数创建一个chainlit.md配置文件# chainlit.md # 欢迎使用DASD-4B-Thinking 欢迎使用DASD-4B-Thinking智能助手这是一个基于40亿参数语言模型的对话系统专门擅长数学推理、代码生成和科学问题解答。 ## 功能特点 - **数学推理**解决复杂的数学问题 - **代码生成**支持多种编程语言 - **科学问答**回答科学相关的问题 - **长文本理解**处理复杂的多步推理 ## 快速开始 1. 在下方输入框输入你的问题 2. 模型会进行多步推理并给出答案 3. 可以追问或要求进一步解释 ## API文档 想要通过代码调用模型查看完整的API文档 [查看API文档](/api-docs) ## 使用技巧 - 问题描述越详细回答越准确 - 对于复杂问题可以要求模型展示推理过程 - 支持多轮对话可以基于之前的回答继续提问 ## 模型信息 **模型名称**DASD-4B-Thinking **参数量**40亿 **擅长领域**数学推理、代码生成、科学问答 **推理方式**长链式思维推理5.4 启动集成服务现在我们可以启动完整的服务了# 第一步启动API文档服务端口8080 python api_docs.py # 第二步启动Chainlit应用端口8000 chainlit run app.py -w --port 8000启动后你可以通过以下地址访问http://localhost:8000- Chainlit聊天界面http://localhost:8000/api-docs- 集成的Swagger UI文档http://localhost:8080/docs- 独立的API文档服务如果需要6. 使用效果展示让我们看看集成后的效果如何。6.1 Chainlit聊天界面打开http://localhost:8000你会看到增强后的聊天界面界面现在包含模型选择可以选择不同的模型虽然目前只有DASD-4B-Thinking参数调节可以调整温度和生成长度API文档链接右上角或欢迎消息中有API文档的链接完整的聊天功能支持多轮对话和历史记录6.2 集成的Swagger UI文档点击查看API文档链接会跳转到http://localhost:8000/api-docsSwagger UI提供了完整的接口列表所有可用的API接口详细的参数说明每个参数的名称、类型、是否必填、描述在线测试功能可以直接在界面上测试API请求响应示例完整的请求和响应示例模型定义数据结构的详细定义6.3 API测试示例在Swagger UI中你可以直接测试API。比如测试聊天接口找到/v1/chat/completions接口点击Try it out按钮修改请求参数{ model: DASD-4B-Thinking, messages: [ { role: user, content: 计算从1加到100的和 } ], temperature: 0.7, max_tokens: 500 }点击Execute发送请求查看响应结果6.4 实际调用示例除了在Swagger UI中测试你也可以用代码调用import requests import json # API地址 url http://localhost:8000/v1/chat/completions # 请求头 headers { Content-Type: application/json } # 请求数据 data { model: DASD-4B-Thinking, messages: [ { role: system, content: 你是一个数学专家请用详细步骤解答问题。 }, { role: user, content: 证明勾股定理a² b² c² } ], temperature: 0.7, max_tokens: 1000 } # 发送请求 response requests.post(url, headersheaders, jsondata) # 处理响应 if response.status_code 200: result response.json() print(模型回复) print(result[choices][0][message][content]) else: print(f请求失败{response.status_code}) print(response.text)7. 高级功能与优化建议基本的集成完成后我们还可以考虑一些高级功能和优化。7.1 添加API认证如果你的API需要认证可以在Swagger UI中添加认证支持// 在Swagger UI配置中添加认证 const ui SwaggerUIBundle({ url: http://localhost:8080/openapi.json, dom_id: #swagger-ui, deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], layout: StandaloneLayout, // 添加认证配置 configs: { preauthorizeApiKey: { name: Authorization, schema: { type: apiKey, in: header, name: Authorization, description: Bearer token认证 }, value: Bearer your-token-here } } });7.2 添加请求示例库为了方便用户使用可以添加一些常用的请求示例# 在API文档服务中添加示例库 API_EXAMPLES { text_completion: { description: 文本补全示例, request: { prompt: def quick_sort(arr):, max_tokens: 200, temperature: 0.7, top_p: 0.9 } }, chat_completion: { description: 聊天补全示例, request: { model: DASD-4B-Thinking, messages: [ {role: system, content: 你是一个Python编程专家}, {role: user, content: 写一个快速排序函数} ], temperature: 0.7, max_tokens: 500 } }, streaming_chat: { description: 流式聊天示例, request: { model: DASD-4B-Thinking, messages: [ {role: user, content: 解释什么是机器学习} ], stream: True, temperature: 0.7 } } } # 在FastAPI应用中添加示例端点 app.get(/api/examples) async def get_api_examples(): 获取API调用示例 return API_EXAMPLES7.3 性能优化建议缓存API文档OpenAPI文档可以缓存减少重复生成的开销CDN加速Swagger UI的静态资源可以使用CDN加速压缩响应启用Gzip压缩减少传输数据量异步处理使用异步请求提高并发性能# 缓存OpenAPI文档的示例 from functools import lru_cache import time openapi_cache {} app.get(/openapi.json) async def get_openapi_schema(): 获取OpenAPI文档带缓存 # 检查缓存 cache_key openapi_schema if cache_key in openapi_cache: cached_data openapi_cache[cache_key] # 检查缓存是否过期5分钟 if time.time() - cached_data[timestamp] 300: return cached_data[schema] # 生成新的文档 schema await generate_openapi_schema() # 更新缓存 openapi_cache[cache_key] { schema: schema, timestamp: time.time() } return schema7.4 错误处理增强为API文档服务添加更好的错误处理from fastapi import HTTPException from fastapi.responses import JSONResponse app.exception_handler(Exception) async def global_exception_handler(request: Request, exc: Exception): 全局异常处理 # 记录错误日志 print(fAPI文档服务错误{str(exc)}) # 返回友好的错误信息 return JSONResponse( status_code500, content{ error: 内部服务器错误, message: API文档服务暂时不可用请稍后重试, detail: str(exc) if app.debug else None } ) app.get(/health) async def health_check(): 健康检查端点 try: # 检查vLLM服务是否可用 response requests.get(f{VLLM_SERVER_URL}/v1/models, timeout5) vllm_healthy response.status_code 200 return { status: healthy if vllm_healthy else degraded, timestamp: time.time(), services: { api_docs: healthy, vllm: healthy if vllm_healthy else unavailable } } except Exception as e: return { status: unhealthy, timestamp: time.time(), error: str(e) }8. 总结通过本教程我们成功实现了8.1 主要成果完整的API文档生成为vLLM部署的DASD-4B-Thinking模型服务生成了标准的OpenAPI文档可视化接口调试通过Swagger UI提供了友好的API测试界面Chainlit前端集成在聊天界面中无缝集成了API文档功能用户体验提升开发者可以方便地查看和测试所有API接口8.2 核心价值这个方案带来了几个重要的价值降低使用门槛即使不熟悉REST API的开发者也能够轻松调用模型提高开发效率减少沟通成本接口文档一目了然促进团队协作前后端开发可以基于统一的文档进行开发方便问题排查在线测试功能帮助快速定位接口问题8.3 后续优化方向如果你想要进一步优化这个方案可以考虑添加更多示例针对不同使用场景提供更多的调用示例集成监控告警监控API的使用情况和性能指标添加使用统计统计哪些接口被频繁使用优化文档重点支持多版本API如果API有多个版本提供版本切换功能国际化支持提供多语言版本的API文档8.4 开始使用现在你已经拥有了一个完整的DASD-4B-Thinking模型服务包括功能强大的聊天界面通过Chainlit与模型对话完整的API文档通过Swagger UI查看和测试所有接口便捷的集成方式可以轻松集成到其他应用中无论是想要快速测试模型效果还是需要将模型集成到自己的应用中这个方案都能为你提供完整的支持。开始探索DASD-4B-Thinking的强大能力吧获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2421363.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…