怎么自己做直播网站吗东莞推广系统哪家强
2026/4/18 12:18:25 网站建设 项目流程
怎么自己做直播网站吗,东莞推广系统哪家强,深圳人才引进入户申请官网,旅游商业网站策划书引言#xff1a;LazyLLM 的概述 在人工智能应用开发领域#xff0c;构建高效的多Agent系统已成为开发者关注的焦点。LazyLLM#xff0c;由商汤科技#xff08;SenseTime#xff09;旗下的LazyAGI团队开发#xff0c;是一个一站式开发工具包#xff0c;旨在简化AI应用的…引言LazyLLM 的概述在人工智能应用开发领域构建高效的多Agent系统已成为开发者关注的焦点。LazyLLM由商汤科技SenseTime旗下的LazyAGI团队开发是一个一站式开发工具包旨在简化AI应用的整个生命周期。它涵盖了从应用搭建、数据准备、模型部署、模型微调到评测等多个环节帮助开发者以极低的成本构建和迭代AI应用。LazyLLM的核心优势在于其模块化设计支持在线和离线模型的集成能够无缝对接多种大语言模型如SenseNova、OpenAI、智谱等并提供丰富的工具链来处理RAGRetrieval-Augmented Generation、Agent系统和多模态功能。作为一款开源工具托管于GitHubLazyLLM强调易用性和灵活性。它支持Python环境下的快速安装并提供Docker镜像以实现开箱即用。同时通过命令行工具和Web模块它降低了从原型开发到生产部署的门槛。LazyLLM 的设计理念是“懒惰但高效”——让开发者专注于业务逻辑而非底层基础设施。这使得它特别适合中小企业或独立开发者在资源有限的情况下快速上线AI应用。本文目标评测 LazyLLM 的工程化能力本文从“开发者体验”Developer Experience, DX和“生产环境需求”Production Requirements两个维度出发测试LazyLLM在工程化环节的落地能力。核心评测点包括部署流程的简化程度考察安装和配置是否直观、是否支持多种方式如手动、Pip、Docker以及是否能快速从零到一构建应用。跨平台运行的稳定性使用Ubuntu服务器作为测试环境验证在Linux系统下的兼容性和稳定性包括依赖管理、环境隔离和潜在的兼容性问题。监控运维的便捷性评估运行时的日志输出、错误处理、资源监控以及是否易于扩展到生产级部署如Web界面支持、命令行工具。为了确保评测的真实性我将在一个真实的Ubuntu 22.04 LTS服务器4GB RAM2vCPU上进行实践部署和测试。整个过程基于官方文档进行模拟从初次接触到上线使用的全流程并记录实际遇到的步骤、输出和问题。通过这个实践我们将看到LazyLLM是否真正实现了“低成本、高效率”的承诺。实践过程部署 LazyLLM 于 Ubuntu 服务器步骤1服务器环境准备首先我通过SSH连接到Ubuntu服务器。服务器已预装Python 3.10Ubuntu默认版本但为了隔离环境我创建了一个虚拟环境。命令# 更新软件包列表 sudo apt update # 安装python3-venv apt install python3-venv # 创建虚拟环境 python3 -m venv lazyllm-venv # 激活虚拟环境 source lazyllm-venv/bin/activate在终端提示符前成功出现lazyllm-venv表示激活成功。创建虚拟环境的目的就是为了相互隔离环境避免全局污染。接下来安装Git如果未安装# 安装git sudo apt install git # 查看git版本 git --version安装完git后通过git --version命令查看git版本来检查是否安装成功。步骤2从GitHub克隆并安装LazyLLM根据文档从GitHub克隆代码git clone https://github.com/LazyAGI/LazyLLM.git cd LazyLLM为了测试全功能我安装了full依赖pip3 install -r requirements.full.txt这里遇到一个小问题pip报告缺少wheel包。falsh-attn包在安装过程中需要wheel来构建wheel包。这里安装下wheel后,重新安装requirements.full.txtpip3 install wheel # 安装完wheel后再次执行 pip3 install -r requirements.full.txt安装结果无错误添加模块路径export PYTHONPATH$PWD:$PYTHONPATH测试导入python3 -c import lazyllm无错误导入成功。评测点部署流程简化度高。手动方式只需几条命令比传统AI框架如TensorFlow自定义部署简单得多。跨平台稳定性好——在Ubuntu上无缝运行无需额外配置如CUDA如果不使用GPU。步骤3备选部署方式测试——使用Pip和Docker为了对比我测试了Pip安装pip3 install lazyllm快速完成1分钟然后安装standard依赖lazyllm install standard这添加了离线模型支持如vLLM。命令行工具立即可用体现了生产环境的灵活性——适合快速原型。Docker方式docker pull lazyllm/lazyllm docker run -it lazyllm/lazyllm /bin/bash镜像拉取耗时2分钟进入容器后直接可用LazyLLM。稳定性测试在容器内运行Python脚本无兼容性问题。但注意Docker需要服务器支持已预装适合生产环境的无状态部署。总体三种方式均简化了流程Docker特别适合跨平台从Ubuntu到Windows容器。步骤4配置API Key使用SenseNova作为示例注册SenseNova账号获取API Key和Secret Key。设置环境变量export LAZYLLM_SENSENOVA_API_KEYyour_api_key export LAZYLLM_SENSENOVA_SECRET_KEYyour_secret_key前往服务列表开通模型我这里使用商汤日日新的SenseChat-5-1202语言模型实践过程使用 LazyLLM 构建和运行应用步骤1实现简单聊天机器人一问一答创建chat.py文件import lazyllm chat lazyllm.OnlineChatModule( sourcesensenova, # 指定使用商汤日日新 modelSenseChat-5-1202 # 指定模型名称 ) while True: query input(query(enter quit to exit): ) if query quit: break res chat.forward(query) print(fanswer: {res})运行python3 chat.py输入What is the capital of France?输出answer: The capital of France is Paris.响应时间约2秒稳定无误。测试多轮修改为支持history的版本。新chat.pyimport lazyllm chat lazyllm.OnlineChatModule( sourcesensenova, # 指定使用商汤日日新 modelSenseChat-5-1202 # 指定模型名称 ) history [] while True: query input(query(enter quit to exit): ) if query quit: break res chat(query, llm_chat_historyhistory) print(fanswer: {res}) history.append([query, res])测试对话Query: Tell me about AI.Query: How does it relate to machine learning?可以从模型输出的内容中看出来上下文是连贯的。评测点开发者体验优秀——代码简洁仅几行即可实现。生产需求上稳定性高无崩溃步骤2部署Web界面首先安装Gradio库这个库用于快速创建机器学习模型的Web界面。pip install gradio代码# 创建文件 cat web_chat.py EOF import lazyllm chat lazyllm.OnlineChatModule( sourcesensenova, # 指定使用商汤日日新 modelSenseChat-5-1202 # 指定模型名称 ) lazyllm.WebModule(chat, port23333).start().wait() EOF # 运行 python3 web_chat.py运行后浏览器访问http://server_ip:23333需开放安全组端口。界面加载成功聊天响应正常。使用命令行工具立即启动Web聊天。指定本地模型lazyllm run chatbot --modelinternlm2-chat-7b需先安装vLLM依赖下载模型耗时10分钟~14GB但推理稳定CPU利用率~50%。评测点WebModule简化了生产部署一键Web化便于监控浏览器日志终端。跨平台稳定Ubuntu上无issue运维便捷易扩展到Nginx代理或Kubernetes。构建RAG应用实战# 安装 datasets 库用于下载数据集 pip3 install datasets -i https://pypi.tuna.tsinghua.edu.cn/simple # 设置 Hugging Face 国内镜像地址 export HF_ENDPOINThttps://hf-mirror.com # 对于 Python 代码或 huggingface_hub 库 export HF_HUB_URLhttps://hf-mirror.com检查数据库多线程支持python3 -c from lazyllm.common.queue import sqlite3_check_threadsafety; print(fSQLite 多线程支持: {sqlite3_check_threadsafety()})下载 CMRC2018 数据集创建download_dataset.py文件from datasets import load_dataset import os # 下载数据集到指定目录 cache_dir ./datasets_cache os.makedirs(cache_dir, exist_okTrue) print(正在下载 CMRC2018 数据集...) dataset load_dataset(cmrc2018, cache_dircache_dir) print(\n数据集结构:) print(dataset) # 查看一条样本数据 print(\n样本数据:) sample dataset[test][0] print(fID: {sample[id]}) print(fContext: {sample[context][:100]}...) print(fQuestion: {sample[question]}) print(fAnswers: {sample[answers]})运行脚本python3 download_dataset.py构建知识库创建build_knowledge_base.py文件import os from datasets import load_dataset def create_KB(dataset, output_dirdata_kb): 基于测试集中的 context 字段创建知识库 每10条数据为一个 txt 文件 # 提取所有 context contexts [] for item in dataset: contexts.append(item[context]) # 去重 contexts list(set(contexts)) print(f去重后共有 {len(contexts)} 条独特的 context) # 创建输出目录 os.makedirs(output_dir, exist_okTrue) # 按每10条数据一组写入文件 chunk_size 10 total_files (len(contexts) chunk_size - 1) // chunk_size for i in range(total_files): chunk contexts[i * chunk_size : (i 1) * chunk_size] file_name f{output_dir}/part_{i1}.txt with open(file_name, w, encodingutf-8) as f: f.write(\n\n.join(chunk)) # 用双换行符分隔不同的 context print(f✓ 文件 {file_name} 写入完成 ({len(chunk)} 条数据)) print(f\n知识库构建完成! 共生成 {total_files} 个文件) return output_dir if __name__ __main__: # 加载数据集 dataset load_dataset(cmrc2018, cache_dir./datasets_cache) # 使用测试集构建知识库 kb_path create_KB(dataset[test]) # 展示第一个文件的内容 print(\n *50) print(第一个文件的内容预览:) print(*50) with open(f{kb_path}/part_1.txt, r, encodingutf-8) as f: content f.read() print(content[:500] ...\n)运行脚本python3 build_knowledge_base.py构建基础 RAG 系统创建basic_rag.py文件import lazyllm import os # 获取知识库路径的绝对路径 kb_path os.path.abspath(./data_kb) print(f知识库路径: {kb_path}) # 1. 文档加载 print(\n[1/4] 加载文档...) documents lazyllm.Document(dataset_pathkb_path) print(f✓ 文档加载完成) # 2. 检索组件定义 print(\n[2/4] 初始化检索组件...) retriever lazyllm.Retriever( docdocuments, group_nameCoarseChunk, # 使用粗粒度分块 similaritybm25_chinese, # 使用中文 BM25 算法 topk3 # 返回最相关的3个文档块 ) print(f✓ 检索组件初始化完成) # 3. 生成组件定义 print(\n[3/4] 初始化大语言模型...) llm lazyllm.OnlineChatModule( sourcesensenova, modelSenseChat-5-1202 ) # 4. 设计 Prompt prompt 你是一个专业的问答助手。请根据以下参考资料回答用户的问题。 要求: 1. 答案必须基于参考资料,不要编造信息 2. 如果参考资料中没有相关信息,请明确告知用户 3. 回答要准确、简洁、专业 参考资料: {context_str} 用户问题: {query} 请给出你的回答: # 修复将 extro_keys 改为 extra_keys llm.prompt(lazyllm.ChatPrompter( instructionprompt, extra_keys[context_str] # 这里修正参数名 )) print(f✓ 大语言模型初始化完成) # 5. 定义 RAG 推理函数 def rag_query(query): 执行 RAG 查询 print(f\n{*60}) print(f用户问题: {query}) print(f{*60}) # 检索相关文档 print(\n[检索阶段]) doc_nodes retriever(queryquery) print(f✓ 检索到 {len(doc_nodes)} 个相关文档块) # 打印检索到的文档 for i, node in enumerate(doc_nodes, 1): content node.get_content() print(f\n文档块 {i} (前100字):) print(f{content[:100]}...) # 生成答案 print(f\n[生成阶段]) context_str \n\n.join([node.get_content() for node in doc_nodes]) response llm({ query: query, context_str: context_str }) print(f\n{*60}) print(fRAG 回答:) print(f{*60}) print(response) print(f{*60}\n) return response # 6. 测试查询 if __name__ __main__: # 测试问题 test_queries [ 玉山箭竹主要分布在哪里?, 台湾的特有植物有哪些?, 高山地区的植物有什么特点? ] for query in test_queries: rag_query(query) print(\n *80 \n)运行测试python3 basic_rag.py这里我定义的三个测试问题看看效果如何第一个玉山箭竹主要分布在哪里?第二个台湾的特有植物有哪些?第三个高山地区的植物有什么特点?总结本文通过在Ubuntu 22.04服务器上的实践部署全面评测了LazyLLM的工程化能力。测试涵盖三种安装方式(手动克隆、Pip、Docker)、多场景应用构建(简单聊天、多轮对话、Web界面、RAG系统)验证了其从零到一的完整开发流程。实践结果表明,LazyLLM在部署流程简化度、跨平台稳定性和开发者体验方面表现优秀:仅需几行代码即可实现功能,支持多种大模型无缝切换(如SenseNova),提供WebModule一键Web化部署,且在Linux环境下运行稳定无兼容性问题。特别是RAG应用构建实战展示了其模块化设计的灵活性,通过Document、Retriever、OnlineChatModule等组件快速搭建知识库问答系统。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询