Skip to content

feat: 从 URL 创建知识时自动提取 HTML 标题 - #31

Closed
fennoai[bot] wants to merge 4 commits into
xgopilot/claude/issue-1-1761289888from
xgopilot/claude/issue-30-1761474504-implementation
Closed

feat: 从 URL 创建知识时自动提取 HTML 标题#31
fennoai[bot] wants to merge 4 commits into
xgopilot/claude/issue-1-1761289888from
xgopilot/claude/issue-30-1761474504-implementation

Conversation

@fennoai

@fennoai fennoai Bot commented Oct 26, 2025

Copy link
Copy Markdown
Contributor

概述

解决 issue #30: 从 URL 创建的知识需要添加标题

问题描述

目前调用 URL 创建知识的接口,生成的 knowledge 都没有标题,影响搜索效率

解决方案

实现了从 HTML 页面自动提取标题的功能:

  1. Protobuf 扩展: 在 ReadResponse 消息中添加 title 字段
  2. WebParser 增强: 自动从 HTML 提取标题
    • 优先使用 <title> 标签
    • 其次使用 <h1> 标签
    • 最后使用默认值 "Untitled Web Page"
  3. Go 服务集成: 从 gRPC 响应中获取标题并更新知识记录

修改文件

  • services/docreader/src/proto/docreader.proto: 添加 title 字段定义
  • services/docreader/src/parser/base_parser.py: ParseResult 添加 title 字段
  • services/docreader/src/parser/web_parser.py: 实现标题提取逻辑
  • services/docreader/src/proto/docreader.pb.go: 更新 Go protobuf 定义
  • services/docreader/src/server/server.py: 在响应中返回提取的标题
  • internal/application/service/knowledge.go: 使用提取的标题更新知识记录

测试建议

  1. 创建一个从 URL 导入的知识,验证标题是否正确提取
  2. 测试不同类型的 HTML 页面:
    • <title> 标签的页面
    • 只有 <h1> 标签的页面
    • 两者都没有的页面
  3. 验证非 HTML 格式的 URL 不受影响

Checklist

  • 代码修改完成
  • 边缘情况处理
  • Commit message 符合规范
  • 测试通过
  • 文档更新(如需要)

Fixes #30

🤖 Generated with codeagent
Co-authored-by: cn0809 63532205+cn0809@users.noreply.github.com

chennan and others added 4 commits October 25, 2025 13:48
V0 版本 - 开源项目 WeKnora 代码
## 问题
当前从 URL 创建知识时,生成的 knowledge 没有标题,影响搜索效率

## 解决方案
1. 扩展 protobuf 定义,在 ReadResponse 中添加 title 字段
2. WebParser 自动从 HTML 提取标题:
   - 优先使用 <title> 标签
   - 其次使用 <h1> 标签
   - 最后使用默认值 "Untitled Web Page"
3. Go 服务从响应中获取并更新知识标题

## 修改文件
- services/docreader/src/proto/docreader.proto: 添加 title 字段
- services/docreader/src/parser/base_parser.py: ParseResult 添加 title 支持
- services/docreader/src/parser/web_parser.py: 保存提取的标题
- services/docreader/src/proto/docreader.pb.go: 更新 Go protobuf 定义
- services/docreader/src/server/server.py: 返回提取的标题
- internal/application/service/knowledge.go: 使用提取的标题更新知识记录

Fixes #30

🤖 Generated with [codeagent](https://github.com/qbox/codeagent)
Co-authored-by: cn0809 <63532205+cn0809@users.noreply.github.com>
@cn0809

cn0809 commented Oct 26, 2025

Copy link
Copy Markdown
Collaborator

@xgopilot 主干分支是 main 分支!基于当前 main 分支最新代码重新提交 pr, 然后关掉这个pr

@fennoai

fennoai Bot commented Oct 26, 2025

Copy link
Copy Markdown
Contributor Author

任务完成

已成功基于最新的 main 分支重新创建 PR。

完成的任务:

新 PR 链接: #32

说明:

  • 新 PR 基于最新的 main 分支 (7b7924d)
  • 包含了原 PR 的所有更改(自动提取 HTML 标题功能)
  • 已在当前 PR 留言,请手动关闭此 PR

注意:我无法直接关闭 PR,需要您手动关闭当前的 PR #31

@fennoai

fennoai Bot commented Oct 26, 2025

Copy link
Copy Markdown
Contributor Author

已基于最新的 main 分支重新创建 PR: #32

请关闭此 PR。

@cn0809 cn0809 closed this Oct 26, 2025
@fennoai
fennoai Bot deleted the xgopilot/claude/issue-30-1761474504-implementation branch October 26, 2025 12:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants