当前位置: 首页 > news >正文

ragflow v0.26.4发布:16种语言词干化上线,Go后端持续统一,Agent与MCP一口气修复大量关键问题

RAGFlow 在 2026 年 7 月 7 日发布了 v0.26.4。
从这次版本说明来看,v0.26.4 并不是单点更新,而是一轮覆盖面非常广的系统性迭代:既有 NLP 分词能力的增强,也有 Go 架构继续推进后的大量对齐与补齐;既修复了 MCP、Agent、知识库、文档解析、标签、过滤器、界面交互等多个使用层面的具体问题,也进一步完善了 RAPTOR、GraphRAG、文件同步、编译工作流、数据库迁移、CLI 构建与文档配套。


一、版本概览

RAGFlow v0.26.4 发布于 2026 年 7 月 7 日。

本次更新主要包含三部分:

  • 新特性
  • 问题修复
  • 变更明细

其中,最值得关注的方向有四个:

  • NLP 与分词链路增强
  • Go 后端进一步统一与对齐
  • Agent、MCP、知识库链路大量修复
  • 文档解析、RAPTOR、GraphRAG 等数据处理能力继续打磨

二、v0.26.4 的新特性

1. NLP 与 Tokenization 升级

这次版本在 NLP 与分词方面带来了明确增强:

  • 新增支持 16 种语言的语言感知 Snowball 词干提取器
  • 将数据集语言参数贯穿到整个分词处理链路
  • 前端新增荷兰语支持
  • 同时新增了 BM25 分词对荷兰语的原生支持

这部分更新非常重要。它意味着 RAGFlow 在多语言处理上进一步向“全链路一致”靠拢。此前很多系统虽然支持多语言界面,但分词、检索、词干化、BM25 召回这些关键环节并没有真正完成一致性打通。v0.26.4 的变化在于,不只是单独加了一个前端语言,而是把“数据集语言参数”真正传进了 tokenization pipeline,这会直接影响检索质量和跨语言数据处理的表现。

2. 知识编译工作流上线

本次加入了:

  • knowledge compilation workflows
  • session 与 memory 数据的 gbrain compile template
  • 一些 wiki 模板

从版本说明看,这些能力都围绕“知识编译”和“模板化沉淀”展开,说明系统在知识组织、会话数据、记忆数据处理方面进一步标准化。

3. Agent 能力增强

Agent 相关新增点包括:

  • 在 Agent canvas 中,为每个 LLM 节点暴露 thinking mode 控制
  • begin 节点支持 JSON object 输入
  • Go 后端补充内置 Agent 模板种子
  • 增加 BGPT 组件及其输入表单

这些变化虽然分散,但放在一起看,会发现 Agent 的配置能力、可视化能力和 Go 端可用性都在同步增强。

4. 文本切分与分块后处理增强

Go 方向新增了两项很关键的能力:

  • chunk pipeline 新增长度切分策略,并支持 overlap
  • 后处理过滤器中支持丢弃空 chunk 和重复 chunk

这两点直接作用于知识入库质量。前者更灵活,后者更干净,有助于减少重复噪声和无效切片。

5. Harness 与事件能力扩展

本次更新加入:

  • event sourcing and replay to harness
  • 移除 naive inline graph engine,统一图执行到单一 pregel engine

这说明底层执行框架在继续收敛,朝着更加统一、可回放、可追踪的执行模型发展。

6. Go 服务与工程能力继续推进

Go 相关新增和调整包括:

  • 将三个服务统一为一个二进制
  • 增加 file syncer service framework
  • 增加 migrate database flag
  • 多轮 agent PR 迁移到 Go
  • Go 与 Python 的 ingestion 边界对齐
  • Go parser backend 与 PDF pipeline 对齐 Python
  • Go 侧补充缺失的 chunk method、模板、组件和表单

这一系列变化非常集中,体现出 Go 后端正在从“功能补齐”走向“架构统一”。


三、官方列出的重点问题修复

官方在版本摘要中单独点出了以下问题,这些都是实际使用中影响比较明显的点:

1. LM-Studio 模型名包含 @ 时触发 ValueError

系统在解析包含 @ 符号的 LM-Studio 模型名时会崩溃。
v0.26.4 修复了这一问题,并且在 Agent 模板拆分等多个位置也加入了对 @ 变量名的防御处理。

2. MCP 服务端因 /chats 返回分页字典而崩溃

list_chats 原先预期 /chats API 返回的是列表,但实际收到的是分页字典结构,因此 MCP server 会崩溃。
v0.26.4 已修复对字典响应的处理逻辑。

3. Docling 解析器会静默丢失数学公式

这是一个非常关键的文档解析问题。
之前数学公式没有被正确提取,而是直接被静默丢弃。
v0.26.4 修复后,Docling parser 可以正确提取文档中的数学公式。

4. metadata 行内编辑无法持久化到后端

用户对 metadata value 的 inline edit 在界面上看似修改成功,但没有真正保存到后端。
本次版本已修复。

5. 批量把文件链接到数据集时会删除已有链接

这个问题会直接影响知识库管理结果。
之前 bulk linking files to datasets 时,系统会误删原有链接。
v0.26.4 修复后,已有关联关系会被保留。

6. 过滤器无法使用中文

这是中文用户会非常在意的问题。
本次明确修复了 filter to use Chinese。

7. 标签权重没有严格限制为大于 0

系统此前没有强制 tag weight 必须大于 0。
本次版本补上了这条校验规则。

8. Agent prompt 下拉菜单布局错乱

前端界面层面的一个明显问题。
v0.26.4 修复了下拉菜单布局异常。

9. Laws chunker 错把点号编号交叉引用识别为标题

对于法律类文本切分,这会影响结构识别。
此次修复后,dotted-number cross-references 不会再被误判为 heading。

10. 编辑 MCP server 名称时允许保存重复名称

这会导致 MCP server 管理混乱。
此次版本已修复重复命名校验。

11. 系统允许导出空的 MCP server 选择

空选择原本不应被导出。
v0.26.4 已补上防护。


四、按模块梳理 v0.26.4 的全部变更

下面按照模块,将变更清单完整整理。


四点一 Go 架构与服务层变化

本次 Go 方向更新非常密集,包括:

  • 将三个服务统一为一个二进制
  • 增加文件同步服务框架
  • 修复 list services
  • 多处 Go 重构
  • 更新错误信息
  • CLI 中移动 order、columns、sort、group by 相关处理
  • 文档上传后默认应为 enabled
  • 为新租户补上缺失的 resume chunk method
  • 数据库迁移 flag 新增
  • 修复 ragflow-cli 构建
  • 修复 release
  • CLI 构建时去掉 cgo
  • 修复 cgo build
  • 重构 UUID functions
  • 修复开发指南

这部分说明 Go 化在继续提速,而且不只是业务功能,还包括构建链路、发布链路、迁移能力、CLI、开发文档等全套工程能力。


四点二 知识库、文件、文档与数据处理链路

知识库和文档处理本次修复了很多实际问题:

  • 修复竞态条件导致重复出现 skills 和 .knowledgebase 文件夹
  • 批量链接文件到知识库时保留原有链接
  • 删除带有关联文档的文件时,修复 KB counter drift
  • 文档和文件访问检查补齐
  • 上传文档默认 enabled
  • 上传部分成功的数据保持为数组
  • 被引用文件不显示的问题修复
  • 在空数据集场景下,缺失 ES 或 OpenSearch 索引时,check_embedding 不再返回 HTTP 500
  • memory 名称不会因为 description 更新而自动追加 (1)

这部分更新虽然看上去“碎”,但其实都很影响日常使用。尤其是文件关联、上传状态、访问校验、部分成功结果结构、引用文件显示等,都是知识库系统中最常见也最容易引发困惑的细节。


四点三 文档解析与 PDF 管线

文档解析是这次版本的重点之一:

  • Docling parser 现在可以提取数学公式
  • PDF parser 重构
  • Go parser backend 与 Python 对齐
  • Go 的 PDF pipeline 与 Python 对齐
  • 文档导出时会去掉 reasoning model 的 thinking tags
  • 修复 closed image 上操作导致的 ValueError
  • 修复 document parsing 因 Langfuse flush 或 shutdown 死锁而冻结的问题

这说明文档处理链路不仅修复了显性 bug,也在做后端一致性和稳定性加固。


四点四 NLP、分词、过滤与切分

这一块更新非常集中:

  • 引入支持 16 种语言的语言感知 Snowball 词干提取器
  • 数据集语言参数贯穿 tokenization pipeline
  • 前端新增荷兰语
  • BM25 tokenization 原生支持荷兰语
  • 修复 filter 使用中文
  • Laws chunker 不再把点号编号交叉引用误判为标题
  • 新增长度切分策略,并支持 overlap
  • 后处理过滤器丢弃空 chunk 与重复 chunk

这说明 v0.26.4 在文本预处理上既做了国际化,也做了规则精度提升。


四点五 Agent 模块更新

Agent 是本次修复最密集的区域之一,完整变更包括:

  • AkShare 已迁移到 ToolBase,可作为 Agent tool 使用
  • Crawler 已迁移到 ToolBase,可加载和运行
  • agent chat completions 无法使用的问题修复
  • 修复无法从本地导入 mcp
  • 修复无法获取 MCP tools
  • 修复无法在 agent-log 中获取 query
  • 修复通过 doc_id 启用 MCP 文件预览
  • 收集 ReAct tool 响应中的 CodeExec artifacts
  • Go backend 支持 Agent 单组件调试
  • Agent canvas 中支持每个 LLM node 的 thinking mode 控制
  • Go 端调试输入表单与 Python 对齐
  • Yahoofinance 的输入和运行修复
  • ExeSQL 与 Browser agent nodes 缺失输入表单的问题修复
  • Go agent web 修复 BGPT canvas form watcher 使用
  • Go agent 新增 BGPT component 与 input form
  • begin node 支持 JSON object 输入
  • 修复 Agent Chat 不工作
  • 修复 Agent session 丢失 tag
  • Agent 更新时保存 draft version
  • 限制 Agent 只能使用与 embedding model 兼容的 memory

从这个列表可以看出,Agent 这次不是单纯修一个点,而是从工具适配、输入表单、日志、调试、兼容性、会话标签、草稿保存到组件接入都做了补齐。


四点六 MCP 相关更新

MCP 在 v0.26.4 中也获得了系统修复:

  • list_chats 兼容 /chats API 返回分页 envelope 字典
  • 防止导出空的 MCP server 选择
  • 防止编辑时保存重复的 MCP server 名称
  • 修复无法获取 MCP tools
  • 修复本地导入 MCP
  • 启用通过 doc_id 的 MCP 文件预览

这说明 MCP 的“可管理性”和“稳定性”都有提升。


四点七 Team、Memory、Search 与权限相关修复

这部分看似不起眼,但都跟团队协作相关:

  • permission=me 时获取 team memory 的问题修复
  • 获取 team member chat 的问题修复
  • 团队 search 在自己的 search-list 中显示问题修复
  • memory update 失败时去掉重复 error toast
  • memory 名称不再因描述更新自动加后缀
  • Agent 限制使用与 embedding model 兼容的 memory

这些修复主要集中在权限、显示和一致性层面。


四点八 RAPTOR、GraphRAG 与聚类链路

数据组织和图增强能力也有多项更新:

  • 限制 RAPTOR UMAP 的 n_neighbors,避免大数据集 OOM
  • 无法运行 raptor 的问题修复
  • 小 RAPTOR 层级改为一步折叠,而不是每层一个节点
  • RAPTOR GMM 在小型降维簇场景下更稳健
  • GraphRAG 过滤 negative-judgment 和 misattributed relationship edges

这部分更新主要围绕稳定性、内存占用和图关系质量展开。


四点九 Harness 与执行引擎

Harness 的更新包括:

  • 修复 DAG slow-branch test 中因 pregel engine 的 nil 初始化导致的问题
  • 移除 naive inline graph engine,统一到单一 pregel engine
  • 增加 event sourcing and replay

可以看出,这部分是在持续推进底层执行框架的一致化。


四点十 前端界面与交互修复

界面层面本次也修了不少细节:

  • agent prompt dropdown menu 布局错乱修复
  • visual input file label 本地化
  • MoveDialog 组件优化 folder data handling
  • confirm delete dialog 防止文本溢出
  • Referenced files not displaying 修复
  • PageIndex 不工作问题修复

这些都是用户日常能直接感知到的变化。


四点十一 标签、元数据与导出导入相关修复

这部分更新包括:

  • metadata 行内编辑值无法持久化到后端的问题修复
  • tag weight 必须大于 0
  • Agent session 丢 tag 修复
  • 文档导出剥离 reasoning model thinking tags
  • similarity threshold fallback 改为使用 nullish coalescing

四点十二 Provider、模型与时间戳相关

  • 修复 providers 列表顺序问题
  • 修复 OpenAI response created timestamp
  • 修复包含 @ 的模型 ID 在 list_tenant_added_models 中触发 too many values to unpack 的问题
  • 在 Agent 模板拆分位置加强对 @ 变量名的防御

四点十三 安全、依赖与环境

  • crawl4ai 升级到 0.9.0
  • 修复 nats host
  • 封装终端颜色输出并增加跨平台颜色检测
  • docs 更新 Docker 构建说明
  • development script 更新

四点十四 发布、文档与仓库展示相关

本次还有不少面向发布与文档的修正:

  • 更新 READMEs 和 docs 中的版本引用到 v0.26.4
  • 新增 v0.26.4 release notes
  • 修复 docker pulls badge
  • 修复 release badge 的缓存
  • 修复 french 的 camo cache
  • 修复 gitee mirrors 的 logo

这些内容虽然不直接影响核心功能,但对于文档一致性、发布可见性和项目展示都很重要。


五、v0.26.4 的几个核心价值点

基于全部变更内容,可以把这个版本的价值浓缩成以下几点:

1. 多语言处理更完整

有了 16 种语言词干化、数据集语言参数打通、荷兰语前后端支持,RAGFlow 的多语言能力更加成体系。

2. Go 后端更接近主线能力

从服务统一、解析对齐、Agent 能力补齐、模板补种到 CLI 构建修复,这说明 Go 方向正在快速追平并整合原有能力。

3. Agent 与 MCP 更可用了

Agent 工具、输入表单、调试、日志、Memory 兼容性、Chat 可用性,以及 MCP 的导入、预览、分页响应、重复命名校验等,都直接改善了使用体验。

4. 文档解析与知识库管理更稳

数学公式提取恢复、访问校验补齐、批量链接保留已有关系、文档上传默认启用、引用文件显示修复、导出清洗 thinking tags,这些都让知识处理链路更完整。

5. RAPTOR、GraphRAG、Harness 继续走向稳定

OOM 防护、小簇稳健性、层级折叠、关系边过滤、事件回放、统一执行引擎,说明底层智能处理能力在进一步“工程化”。


六、完整更新清单汇总

为了方便收藏和转发,这里再做一次完整汇总,不遗漏任何变更点:

  • 发布 v0.26.4

  • 新增支持 16 种语言的语言感知 Snowball stemmer

  • 数据集语言参数贯穿 tokenization pipeline

  • 前端新增 Dutch

  • 修复包含 @ 的 LM-Studio 模型名解析崩溃

  • 修复 MCP server 在 list_chats 遇到分页字典响应时崩溃

  • 修复 Docling parser 丢失数学公式

  • 修复 metadata 行内编辑值未持久化到后端

  • 修复 bulk-linking files to datasets 时移除现有链接

  • 修复 filter 无法使用中文

  • 修复 tag weight 未限制为大于 0

  • 修复 agent prompt dropdown menu 布局异常

  • 修复 Laws chunker 将点号编号交叉引用误判为标题

  • 修复编辑 MCP server 时允许重复名称

  • 修复允许导出空 MCP server 选择

  • 三个服务统一为一个二进制

  • 增加 knowledge compilation workflows

  • 增加 file syncer service framework

  • AkShare 迁移到 ToolBase

  • 修复 skills 与 .knowledgebase 文件夹竞态重复

  • 修复 harness DAG slow-branch 与 pregel engine nil 初始化问题

  • 统一代码格式化

  • bulk linking files to knowledge bases 保留已有链接

  • 修复 agent chat completions 无法使用

  • 修复无法从本地导入 mcp

  • 修复无法获取 MCP tools

  • 修复删除带关联文档文件时 KB counter drift

  • 防止导出空 MCP server 选择

  • 防止编辑 MCP server 时出现重复名称

  • 修复 list services

  • 本地化 agent form 中的 visual input file label

  • 优化 MoveDialog 组件的 folder data handling

  • 多处 Go 重构

  • Crawler 迁移到 ToolBase

  • harness 统一图执行引擎到单一 pregel engine

  • 多项 Agent PR 迁移到 Go

  • 增加 session 和 memory 数据的 gbrain compile template

  • 修复 permission=me 时获取 team memory

  • 修复获取 team member chat

  • 修复团队 search 出现在 own search-list 的问题

  • 修复 providers 列表顺序

  • 修复 agent-log 无法获取 query

  • 在模板拆分位置增强对 @ 变量名的防御

  • 更新 Go 错误信息

  • CLI 调整 order、columns、sort、group by

  • 通过 doc_id 启用 MCP 文件预览

  • 更新 Docker 构建文档

  • 更新 development script

  • 增加 wiki templates

  • 删除 canvas_app.py 和 evaluation_service.py

  • 限制 RAPTOR UMAP n_neighbors 防止大数据集 OOM

  • Go ingestion 边界与 Python 对齐

  • 重构 pdf parser

  • 收集 ReAct tool 响应中的 CodeExec artifacts

  • Go backend 支持 Agent 单组件调试

  • 修复 Elasticsearch skill search field mapping

  • 补充 document 和 file 访问检查

  • Agent canvas 中按 LLM node 暴露 thinking mode 控制

  • Helm chart 默认 minio image 切换

  • 再次迁移 Agent PR 到 Go

  • 修复 Docling 数学公式提取

  • REST API 中 memory message limit 和 top_n 限制到最大页大小

  • 修复 nats host

  • 修复 Laws chunker 误判

  • 修复 metadata 行内编辑持久化

  • Go agent debug input form 与 Python 对齐

  • Go chunk pipeline 新增长度切分策略和 overlap

  • Go 后处理过滤器丢弃空 chunk 和重复 chunk

  • 修复 OpenAI response created timestamp

  • 修复 agent prompt dropdown menu 布局

  • 修复 tag weight 大于 0 校验

  • 修复 Agent session 丢失 tag

  • Go 合并函数

  • 修复 filter 使用中文

  • 上传文档默认 enabled

  • 移除冗余函数,并将 run_raptor 调整为 do_raptor

  • 修复 Yahoofinance 输入和运行

  • 修复 ExeSQL 和 Browser agent nodes 缺失输入表单

  • 上传部分成功数据保持数组结构

  • 为新租户补充 resume chunk method

  • Go parser backend 与 PDF pipeline 对齐 Python

  • GraphRAG 过滤 negative-judgment 和 misattributed relationship edges

  • 缺失 ES 或 OpenSearch 索引时 check_embedding 不再报 HTTP 500

  • 小 RAPTOR 层级一步折叠

  • 修复 MCP list_chats 处理字典响应

  • RAPTOR GMM 在小 reduced clusters 更稳健

  • Workflow agent completions 在省略 stream 时默认 stream=True 的问题修复

  • crawl4ai 升级到 0.9.0

  • harness 增加 event sourcing 和 replay

  • BM25 tokenization 原生支持 Dutch

  • 修复模型 ID 包含 @ 时 list_tenant_added_models 报错

  • 封装终端颜色输出并增加跨平台颜色检测

  • 修复 BGPT canvas form watcher 使用

  • 使用 slices.Contains 简化代码

  • Go agent 增加 BGPT 组件与 input form

  • Go backend 补充内置 Agent 模板

  • begin node 支持 JSON object 输入

  • 修复 Agent Chat 不工作

  • 文档导出剥离 thinking tags

  • 修复 memory update 失败重复 error toast

  • 修复 confirm delete dialog 文本溢出

  • 修复开发指南

  • 限制 Agent 使用与 embedding model 兼容的 memory

  • 修复 referenced files 不显示

  • Agent 更新时保存 draft version

  • 修复 go-pipeline 列出 agents 时错误过滤 ingestion pipelines

  • 修复 closed image 上的操作异常

  • 修复无法运行 raptor

  • similarity threshold fallback 改为 nullish coalescing

  • 重构 UUID functions

  • 修复 docker pulls badge

  • 修复 release badge 缓存

  • 修复 french camo cache

  • 修复 PageIndex 不工作

  • 修复 gitee mirrors logo

  • 修复 Langfuse flush 或 shutdown 死锁导致 document parsing 冻结

  • 修复 memory 名称因 description 更新自动追加 (1)

  • READMEs 与 docs 版本引用更新到 v0.26.4

  • 新增 v0.26.4 release notes

  • Go 增加 migrate database flag

  • 修复 ragflow-cli building

  • 修复 release

  • CLI 构建去掉 cgo

  • 修复 cgo build


七、结语

RAGFlow v0.26.4 是一个非常典型的“工程质量版本”。

它没有用特别夸张的新功能去吸引眼球,但它做了大量真正影响系统可用性和稳定性的工作:
多语言分词更完整了,中文过滤可用了,数学公式不再丢了,MCP 和 Agent 大量细节问题被修掉了,Go 后端继续快速对齐主线能力,RAPTOR、GraphRAG、Harness 这些底层链路也在持续稳固。

http://www.cnnetsun.cn/news/3235861.html

相关文章:

  • OpenAI 最重要的一篇论文有个 bug,整个 AI 行业按错误配方烧了两年算力
  • 医学影像云PACS系统——PACS诊断工作站
  • 橡果教育Creo产品结构设计培训专业办学能力研究报告
  • RAG解决复杂问题——多跳推理
  • API响应延迟差4.8倍?上下文崩溃率超32%?Claude与DeepSeek真实生产环境踩坑清单,开发者速存!
  • 全栈自研技术的GEO服务商哪家强?2026年五大服务商深度横评与决策参考建议
  • 【大数据课程设计/毕业设计】基于 Hadoop 的热点新闻情感分析系统的设计与实现 基于智能分析的网络热点新闻推送与研判系统【附源码、数据库、万字文档】
  • Kimi K2的“超长上下文”真相 vs DeepSeek V3的“零样本泛化”黑科技:一线团队踩坑复盘与迁移避坑清单
  • AI编程提效瓶颈突破,.cursorrules精准调优实战手册,仅限前200位开发者获取的私密配置模板
  • STRIDE威胁建模实战:用Microsoft Threat Modeling Tool构建Web应用安全防线
  • 2026新手必看:5款热门AI写小说工具测评,哪款写小说软件更适合长期连载?
  • Palantir AIP平台AI服务定价机制与成本优化策略解析
  • OpenCV 4.8 与 PyTorch 2.2 图像识别:5个实战项目代码与性能对比
  • 系统集成项目工程师备考复盘
  • 可研PPT怎么做?这份避坑指南,照着抄就对了
  • 分类学数据库更新对蛋白快速比对工具DIAMOND的影响
  • 数据集成平台|AIIData数据中台实现达梦、人大金仓、Hive、MySQL、Oracle、Kafka 一键接入Doris
  • 【限时技术白皮书】ChatGPT输出Token动态裁剪技术:支持毫秒级响应截断+语义完整性保留(已通过PCI-DSS认证场景验证)
  • CUDA 12.3 + cuDNN 8.9.7 Windows 11 环境配置:3步验证与2个关键环境变量
  • 【DeepSeek vs Claude终极对决】:20年AI架构师实测5大维度,谁才是中文场景下的真正王者?
  • 大数据计算机毕设之基于 Django 的餐慧餐厅订单数据分析系统的设计与实现 基于时序分析的餐慧餐厅经营趋势系统(完整前后端代码+说明文档+LW,调试定制等)
  • 从0到1搭一个云原生大模型推理平台:FastAPI + vLLM + Kubernetes + Prometheus
  • AI时代企业核心竞争力:从基础模型到学习回路的技术演进
  • Cursor接入DeepSeek实战教程:从零配置到智能编码,95%开发者忽略的5个关键细节
  • 【大数据课程设计/毕业设计】基于 Spark 数据挖掘的新能源汽车竞品分析系统的设计与实现 基于 Spark 的星云新能源汽车大数据智能分析系统【附源码、数据库、万字文档】
  • 阿里开源的安全沙箱解决方案 OpenSandbox
  • 【大数据毕业设计】基于 Spark 计算的星云汽车销售趋势预测系统的设计与实现 基于大数据 Spark 的新能源汽车用户消费分析系统(源码+文档+远程调试,全bao定制等)
  • 为什么顶尖AI原生团队已弃用Cursor转向Windsurf?——基于37个真实工程项目的IDE迁移成本与ROI分析(附可复用评估清单)
  • 东莞电商运营培训专业办学能力对比研究报告 ——以橡果教育与都市领航教育为研究样本
  • 计算机毕业设计之基于SSM技术的济宁市旅游网站的设计与实现