
1. 项目目标
开发一个工具,能通过 DeepSeek 分享链接,自动提取 AI 回答中的引用来源(网址、标题等),并能调用 DeepSeek API 对回答内容进行品牌能见度分析(识别真正的品牌,排除泛泛提及的平台名称)。
Streamlit,构建简单网页界面。api/v0/share/content),获取结构化的对话和引用数据。openai 库调用 DeepSeek API,通过精心设计的 Prompt 让 AI 进行语义理解,区分“核心品牌”和“平台名称”。| 阶段 | 遇到的问题/核心疑问 | 如何解决/关键结论 |
|---|---|---|
| 环境搭建 | pip install 时出现哈希值冲突。 |
使用 --no-cache-dir 或手动安装核心依赖,绕过了有问题的 requirements.txt。 |
| 核心逻辑 | 直接用 API 抓不到引用来源? | 发现 DeepSeek API 本身不支持联网搜索,不会返回引用。解决方案改为:用户手动分享,工具解析分享页面的后端数据接口。 |
| 数据接口 | 找到了 content?share_id=... 却返回 404? |
通过浏览器开发者工具(F12)发现正确的接口是 /api/v0/share/content。这是关键突破点。 |
| 品牌分析 | AI 把 Meta、Instagram 也当成品牌分析了? | 优化了 Prompt,明确要求 AI 识别“真正作为讨论主体”的品牌,排除平台名称和案例客户,实现了语义理解而非关键词匹配。 |
| API密钥安全 | 硬编码的 API Key 暴露了怎么办? | 绝对不能硬编码。方案:代码中通过 st.secrets.get() 读取,在 Streamlit Cloud 后台配置 Secrets。本地运行时则通过 try...except 捕获异常,让用户手动输入。 |
| 本地运行报错 | 本地运行提示 StreamlitSecretNotFoundError。 |
因为本地没有 Secrets 文件。在代码中加入环境判断,自动切换到手动输入模式。 |
| 代码同步 (最曲折) | git push 反复失败,出现 443 超时或合并冲突。 |
核心问题:本地 master 分支 vs 远程 main 分支,以及网络代理干扰。最终采用 SSH 协议、配置 Git 代理、手动解决冲突,在 Codespace 中统一用 main 分支后,成功推送。 |
| 用户体验 | API Key 输入框里总显示密码,不好看。 | 通过 value="" 强制输入框为空,并结合 st.session_state 和 st.rerun() 实现更换 Key 的逻辑,界面更干净。 |