From 6dd5d86c8b7f5ea40d8cce20cc7a61251688fec9 Mon Sep 17 00:00:00 2001 From: Beast Date: Sat, 13 Jun 2026 16:47:59 +0800 Subject: [PATCH] iflytek summary + cleanup --- .../2026-06-13_iflytek_brief_152220.md | 52 -------- .../2026-06-13_iflytek_deep_153954.md | 87 ------------- .../2026-06-13_iflytek_summary_164759.md | 50 ++++++++ .../2026-06-13_iflytek_visit_153542.md | 50 -------- analyzers/cross_analysis.py | 68 ++++++++++ analyzers/daily_digest.py | 4 +- analyzers/personality_analysis.py | 118 ++++++++++++++++++ analyzers/thu_analysis.py | 64 ++++++++++ analyzers/zju_analysis.py | 66 ++++++++++ analyzers/zju_brief.py | 52 ++++++++ tools/formatter.py | 17 ++- 11 files changed, 433 insertions(+), 195 deletions(-) delete mode 100644 ai-insights/daily/2026-06-13/2026-06-13_iflytek_brief_152220.md delete mode 100644 ai-insights/daily/2026-06-13/2026-06-13_iflytek_deep_153954.md create mode 100644 ai-insights/daily/2026-06-13/2026-06-13_iflytek_summary_164759.md delete mode 100644 ai-insights/daily/2026-06-13/2026-06-13_iflytek_visit_153542.md create mode 100644 analyzers/cross_analysis.py create mode 100644 analyzers/personality_analysis.py create mode 100644 analyzers/thu_analysis.py create mode 100644 analyzers/zju_analysis.py create mode 100644 analyzers/zju_brief.py diff --git a/ai-insights/daily/2026-06-13/2026-06-13_iflytek_brief_152220.md b/ai-insights/daily/2026-06-13/2026-06-13_iflytek_brief_152220.md deleted file mode 100644 index 6f1d107..0000000 --- a/ai-insights/daily/2026-06-13/2026-06-13_iflytek_brief_152220.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -date: 2026-06-13 -type: iflytek-brief -tags: [讯飞, 参观学习, 简要分析] ---- - -## 科大讯飞参观学习内容简要分析 - -### 一、核心收获:从零散记录到体系化思考 - -本次参观学习记录呈现出明显的“进化”轨迹。从上午的零散化记录(09:20),到中午的初步归纳(11:23),再到下午参观时的结构化反思(14:23),体现了“记录-思考-再记录”的良性循环。这种“先记录、后归纳”的方法,比单纯堆砌关键词更能加深理解与印象。 - -### 二、科大讯飞业务亮点 - -1. **明星产品矩阵**:办公本、学习机、翻译机、阿尔法蛋等,其中教育板块营收最大。 -2. **AI+医疗突破**:执业医师考试超越96%考生,已覆盖600多个县市医院及社区医院。 -3. **教育减负利器**:改作业机器支持批注、分类统计、针对性辅导,去年销量增长9倍。未来每个孩子或拥有专属AI老师。 -4. **同声传译瓶颈**:延迟问题尚未解决,无论耳机还是智能眼镜。 -5. **行业合作**:与国网公司、能源局等广泛合作。 - -### 三、战略思维启发 - -上午的企业战略课(11:23)提供了深刻的思考框架: - -1. **价值网依赖模型**:强调企业需理解自身在生态中的位置。 -2. **战略转折点模型**:诺基亚“大哥吃小弟”的失败案例警示——成功历史过于厚重可能成为转型障碍。 -3. **迭代模式演进**:从“预备-瞄准-开枪”到“瞄准-预备-开枪”,再到“开枪-开枪-开枪”,强调快速试错与敏捷迭代。 - -### 四、AI时代工作方法论 - -1. **智能体协作**:9个智能体组成团队(选题、素材、审稿等),启发自动化工作流。 -2. **录音卡价值**:决定购买录音卡,用于日常录音整理并纳入知识仓库。 -3. **人机协作四步法**:请他进来 → 他不会打铁 → 找到协作模式 → 快速反馈久久为功。 -4. **AI取代规律**:所有结果容易被验证的工作,AI都会快速取代。 - -### 五、推荐书单与模型 - -- **战略类**:《只有偏执狂才能生存》《创新者的窘境》《精益创业》《第二曲线》等 -- **思维类**:《反脆弱》《技术的本质》《盲眼钟表匠》等 -- **实践类**:《亚马逊逆向工作法》《测试的力量》《艺术与恐惧》等 -- **模型**:弹道模型、制导模型、造塔模型、逻辑模型 - -### 六、个人行动建议 - -1. **工具升级**:购买录音卡,建立每日录音-整理-入库流程。 -2. **知识沉淀**:将此前学习内容通过memos逐步录入,形成系统知识仓库。 -3. **智能体应用**:探索助理模式与工作空间优化,解决“养虾”问题。 -4. **持续学习**:尝试蚂蚁阿福等垂直领域AI工具,验证其精准度。 - -### 总结 - -本次参观学习不仅收获了科大讯飞的产品与技术洞察,更重要的是获得了“记录-思考-迭代”的方法论,以及从企业战略到个人工作流的系统性启发。AI时代,关键不是掌握所有工具,而是建立“快速反馈、久久为功”的协作模式。 \ No newline at end of file diff --git a/ai-insights/daily/2026-06-13/2026-06-13_iflytek_deep_153954.md b/ai-insights/daily/2026-06-13/2026-06-13_iflytek_deep_153954.md deleted file mode 100644 index 511c9ca..0000000 --- a/ai-insights/daily/2026-06-13/2026-06-13_iflytek_deep_153954.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -date: 2026-06-13 -type: iflytek -tags: [讯飞, 参观学习, 细致分析] ---- - -> 本文共 **3824** 字 · 预计阅读 **13** 分钟 - -## 当语言穿过电流:科大讯飞的技术逻辑与我的认知对照 - -六月十三日下午,我坐在科大讯飞的会议室里,李心博士的讲解像一条河流,从人工智能的源头缓缓流淌而来。窗外是合肥高新区常见的夏日光线,明亮而灼热,室内却是另一种光——屏幕上的数据、算法、应用场景,它们编织成一张巨大的网,试图捕捉这个时代最根本的变革。 - -“人工智能的四次浪潮,1970,1990,2006,2022。”李心博士的这句话像一把标尺,丈量着人类与机器之间关系的演化史。1970年的第一次浪潮,是符号主义的黄金时代,人们相信逻辑推理可以穷尽一切;1990年的第二次,是专家系统的黄昏,知识工程的局限性暴露无遗;2006年的第三次,深度学习在学术圈悄然复兴,Hinton的论文像一颗种子;而2022年,ChatGPT的出现,让整个世界都感受到了某种震颤。 - -但真正让我在意的,不是这些时间节点本身,而是李心博士紧接着说出的那句话:“技术路径:深度神经网络+GPU。”这短短十个字,道出了人工智能从学术想象变为产业现实的全部秘密。深度神经网络提供了算法骨架,GPU提供了算力肌肉,两者的结合,让机器第一次能够以接近人类的方式理解语言、识别图像、生成内容。 - -这让我想起自己正在做的事情。我的工作本质上也是处理信息——从零散的记录中提取结构,从混沌的输入中寻找秩序。而科大讯飞所做的,是把这种能力提升到了另一个维度:他们不是在处理文字,而是在处理语言本身;不是在整理信息,而是在理解意义。 - -### 从翻译机到执业医师:技术逻辑的延伸 - -介绍人介绍了多款翻译机、阿尔法蛋等翻译工具,还介绍了各级领导的认可和赞叹。这些产品我早就听说过,但真正让我震撼的,是讯飞参加执业医师考试的数据——“超过96%的考试”。这意味着什么?意味着一个AI系统,在医学知识的掌握程度上,已经超过了绝大多数人类医生。 - -但李心博士没有停留在展示这个数字上,他接着说:“现在广泛的服务于社区医院,600多个县市医院。”这才是关键。技术不是用来炫耀的,而是用来解决问题的。96%的通过率只是一个证明,证明这个系统有资格进入医疗场景;而600多个县市医院的落地,才是技术真正产生价值的地方。 - -这让我想到了技术扩散的规律。从实验室到市场,从精英到大众,从一线城市到基层社区,每一步都充满了挑战。讯飞选择的路径很有意思——他们不是去取代三甲医院的专家,而是去服务那些资源匮乏的基层医疗机构。在社区医院里,一个AI辅助诊断系统可能比一个刚毕业的年轻医生更有经验;在偏远县市,一个能通过执业医师考试的AI,可能比当地仅有的几位医生更全面。 - -这种技术逻辑,与我正在做的事情形成了有趣的对照。我的工作也是从精英到大众的扩散——最初服务于少数深度用户,现在试图让更多人受益。但讯飞的做法提醒了我:真正的价值不在于服务了多少高端客户,而在于解决了多少底层问题。 - -### 教育板块:营收最大,意义更深 - -“讯飞教育板块是最大的板块,营收最大。”李心博士这句话让我重新审视了这家公司的商业逻辑。在很多人眼中,科大讯飞是一家语音技术公司,但它的核心业务早已超越了语音本身。 - -“改作业的机器,可以批注,去年销量增加了9倍。”这个数字令人印象深刻。9倍的增长,说明市场对这个产品有着强烈的需求。为什么?因为批改作业是教师最耗时、最枯燥的工作之一。一个能自动批改、还能给出批注的机器,直接解放了教师的双手。 - -但更让我感兴趣的是接下来的描述:“还能对题目进行分类统计,针对性的辅导。对基层减负发挥很大作用。”这里体现的不仅是效率提升,更是教育理念的转变。传统教育是“一刀切”的,所有学生做同样的作业,接受同样的教学。而AI系统能够识别每个学生的薄弱环节,提供个性化的辅导。 - -“以后每个孩子可能都会有自己的AI老师,帮助自己查漏补缺。”这句话让我想起了自己小时候的学习经历。那时候,遇到不会的题目,只能等第二天问老师,或者问同学。如果有一个随时在线的AI老师,学习效率会有多大提升? - -但讯飞的野心不止于此。“学校和教委也是这个机器的受众,他们也很喜欢这个。讯飞有一个AI评价体系给教委。”从学生到教师,从学校到教委,讯飞在教育领域构建了一个完整的生态。这个生态的核心不是技术,而是数据——学生的学习数据、教师的教学数据、学校的运营数据、教委的管理数据。这些数据汇聚在一起,形成了一套评价体系,能够从宏观到微观,全面反映教育质量。 - -这与我正在做的事情形成了第二重对照。我的工作也是处理数据,但我的数据是离散的、局部的,而讯飞的数据是系统的、全局的。他们不仅收集数据,还构建了数据之间的关联;不仅分析数据,还基于数据做出了决策建议。 - -### 同声传译的延迟问题:技术的边界 - -“目前同声传译还解决不了延迟的问题,不论耳机还是智能眼镜。”李心博士这句话让我意识到,即使是最先进的技术,也有其边界。 - -同声传译的延迟,本质上是一个计算问题。语音识别需要时间,翻译需要时间,语音合成需要时间。即使每个环节都优化到极致,累积的延迟仍然无法消除。这不仅是算力的问题,更是算法架构的问题。目前的深度学习模型大多是串行的,输入-处理-输出,每个步骤都依赖前一步的结果。要实现真正的实时翻译,可能需要全新的计算范式。 - -但这个问题也让我思考:技术的边界在哪里?哪些问题是可以解决的,哪些问题在可预见的未来仍然无法解决?对于我自己的工作来说,这个问题的答案同样重要。我需要知道,哪些事情可以交给AI去做,哪些事情必须由人类来完成。 - -### 与国网公司和能源局的合作:AI的跨界应用 - -“讯飞和国网公司,能源局也有些广泛合作。”这句话出现在座谈会讲课内容的第二部分:“AI加能源行业应用案例”。虽然李心博士没有详细展开,但这个方向本身就值得深思。 - -能源行业是一个传统行业,但也是一个数据密集型行业。电网的运行数据、设备的维护数据、用户的用电数据,这些数据构成了一个巨大的信息网络。AI在这个网络中可以发挥什么作用?预测设备故障、优化能源分配、识别异常用电行为……这些都是可能的应用场景。 - -但更让我感兴趣的是,讯飞作为一个以语音技术起家的公司,如何进入能源行业。答案可能在于:语音技术只是入口,AI能力才是核心。无论是语音识别、自然语言处理,还是计算机视觉、知识图谱,这些都是AI的不同表现形式。讯飞的核心竞争力,不是语音识别本身,而是将AI技术应用到具体场景的能力。 - -这给了我很大的启发。我一直在思考自己的核心竞争力是什么。是信息处理能力吗?是写作能力吗?还是对特定领域的理解?讯飞的例子告诉我,真正的核心竞争力不是单一的技术或能力,而是将技术与场景结合的能力。 - -### 录音卡的启示:工具与人的关系 - -在记录中,我写下了这样一句话:“补充,录音卡一定要买了。我现在手动输入替代的就是它的工作。” - -这句话看起来是随手记下的购物清单,但仔细想想,它反映了一个更深层的问题:工具与人的关系。我一直在手动输入,试图用文字记录下听到的内容,而录音卡可以自动完成这项工作。为什么我没有早点使用录音卡?可能是因为习惯,可能是因为对技术的信任不足,也可能是因为我没有意识到这个工具能够解决什么问题。 - -这让我想起了讯飞的办公本和学习机。这些产品之所以成为“明星产品”,不是因为它们的技术有多先进,而是因为它们解决了真实的问题。办公本解决了会议记录的问题,学习机解决了个性化学习的问题。技术只有嵌入到具体的场景中,才能真正产生价值。 - -### 融会贯通:技术逻辑、产业逻辑与个人对照 - -回顾整个参观过程,我看到了三条清晰的逻辑线: - -第一条是技术逻辑。从1970年的第一次AI浪潮到2022年的第四次浪潮,从深度神经网络到GPU,从语音识别到大模型,技术一直在进化。但进化的方向不是随机的,而是朝着更通用、更智能、更实用的方向发展。讯飞抓住了这个方向,将语音技术作为切入点,逐步扩展到教育、医疗、能源等多个领域。 - -第二条是产业逻辑。讯飞选择的每一个应用场景,都有明确的商业价值和社会价值。教育板块营收最大,说明市场需求旺盛;医疗板块服务600多个县市医院,说明技术落地的可行性;能源板块与国网公司合作,说明跨界应用的潜力。这些场景不是孤立的,而是相互关联的,共同构成了讯飞的业务生态。 - -第三条是个人对照逻辑。我自己的工作是信息处理和内容创作,与讯飞的技术有天然的关联。讯飞做的是“让机器理解语言”,我做的是“让文字传达意义”。两者的目标不同,但方法有相通之处。讯飞提醒了我:技术不是目的,解决问题才是;数据不是资产,洞察才是;工具不是替代,赋能才是。 - -### 结语:语言、电流与意义 - -走出科大讯飞的办公楼,合肥的傍晚依然明亮。我想起了李心博士提到的“深度神经网络+GPU”,想起了“96%的执业医师考试通过率”,想起了“改作业机器销量增长9倍”。这些数字和事实,像电流一样穿过我的大脑,激发出新的思考。 - -语言是人类最古老的工具,电流是现代文明的基础,而AI,是这两者的结合。当语言穿过电流,当意义在算法中生成,我们正在见证的,不仅是技术的进步,更是人类认知方式的根本变革。 - -而我,作为一个以文字为生的人,需要在这场变革中找到自己的位置。不是被技术取代,而是与技术共舞;不是抗拒变化,而是拥抱变化。就像讯飞的办公本和学习机一样,找到自己能够解决的问题,然后去解决它。 - -这大概就是参观科大讯飞给我最大的启示:技术再先进,最终还是要回到人本身。无论是教育、医疗还是能源,AI的价值不在于它有多“智能”,而在于它能让多少人受益。 \ No newline at end of file diff --git a/ai-insights/daily/2026-06-13/2026-06-13_iflytek_summary_164759.md b/ai-insights/daily/2026-06-13/2026-06-13_iflytek_summary_164759.md new file mode 100644 index 0000000..ae449e4 --- /dev/null +++ b/ai-insights/daily/2026-06-13/2026-06-13_iflytek_summary_164759.md @@ -0,0 +1,50 @@ +--- +date: 2026-06-13 +type: iflytek-summary +tags: [讯飞, 参观学习, 学习总结] +--- + +> 本文共 **1343** 字 · 预计阅读 **4** 分钟 + +好的,这是根据您今天下午在科大讯飞参观学习的记录,整理的一份完整的学习总结分析。 + +--- + +## 科大讯飞参观学习总结分析 + +**日期:** 06月13日 下午 +**主讲人:** 李心博士 +**地点:** 科大讯飞 + +### 一、 核心印象与学习方式反思 + +本次参观学习,我深刻体会到**记录方式的转变**对知识内化的影响。上午的零散化记录虽然高效,但下午的参观内容更加体系化,需要**经过人脑第一次处理归纳**。单纯的“扔一堆关键词”虽然可行,但“自己的印象,脉络和理解不会有后者那么深刻”。这提醒我,在后续的学习中,应主动进行结构化梳理,将碎片信息编织成知识网络。 + +### 二、 产品矩阵与市场表现 + +科大讯飞的产品线覆盖了多个领域,其中明星产品与核心业务板块表现突出: + +* **明星产品:** **办公本**和**学习机**是讯飞的拳头产品,获得了市场与各级领导的广泛认可。 +* **教育板块:** 这是讯飞**最大的板块,营收最大**。其核心产品是**改作业的机器**,不仅能批注,还能对题目进行分类统计,实现针对性辅导。该产品去年销量**增加了9倍**,对基层教师减负发挥了很大作用。未来,每个孩子可能都会拥有自己的**AI老师**,帮助查漏补缺。学校和教委也是重要客户,讯飞为此提供了**AI评价体系**。 +* **翻译产品:** 包括多款翻译机、阿尔法蛋等翻译工具,并获得了各级领导的肯定。 +* **医疗领域:** AI+医疗前景广阔。科大讯飞参加执业医师考试,**超过96%的考试**,目前其技术已广泛服务于**600多个县市医院**的社区医疗。 +* **能源合作:** 与国网公司、能源局有广泛合作。 + +### 三、 技术前沿:大模型与人工智能 + +李心博士的讲课内容,让我对人工智能,特别是大模型技术有了更系统的认知。 + +1. **发展脉络:** 人工智能经历了四次浪潮(1970, 1990, 2006, 2022),技术路径核心是**深度神经网络+GPU**。 +2. **核心指标:** 衡量人工智能能力的关键指标是**参数**,参数越大,模型越厉害。 +3. **技术本质:** 我理解了**机器学习与深度学习的区别**。一个关键洞察是:**开发人员并不清楚人工智能的智能来源**,其可解释性每向前一点都能达到发论文的标准,但模型的确被造出来了。这体现了当前AI的“黑箱”特性。 +4. **未来确定性:** **电力加算力是未来唯一的确定性**,这既是技术趋势,也蕴含投资机会。 +5. **技术瓶颈:** 目前**同声传译还解决不了延迟的问题**,不论是在耳机还是智能眼镜上。 + +### 四、 个人行动与思考 + +* **工具应用:** 记录中特别强调了**录音卡**的重要性,它替代了手动输入的工作。这是提升效率的关键工具,必须购买。 +* **深化理解:** 关于“**skill**”的理解,我意识到这是我最近关注的盲区,下一步需要**加深理解**,将其融入到对AI应用层的认知框架中。 + +### 五、 总结与展望 + +本次参观学习,我不仅看到了科大讯飞在**教育、医疗、能源**等领域的成熟应用与广阔前景,更通过李心博士的讲解,对**大模型的底层逻辑、技术瓶颈和未来确定性**有了初步但扎实的理解。这为我后续关注AI技术发展、寻找投资机会以及提升个人工作效率提供了清晰的方向。**电力+算力**将成为我未来持续关注的焦点。 \ No newline at end of file diff --git a/ai-insights/daily/2026-06-13/2026-06-13_iflytek_visit_153542.md b/ai-insights/daily/2026-06-13/2026-06-13_iflytek_visit_153542.md deleted file mode 100644 index c94295f..0000000 --- a/ai-insights/daily/2026-06-13/2026-06-13_iflytek_visit_153542.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -date: 2026-06-13 -type: iflytek -tags: [讯飞, 参观学习] ---- - -好的,作为你的学习伙伴,我将专注于分析你下午在科大讯飞参观学习的内容,并为你梳理出其中的核心脉络与关键洞察。 - ---- - -### 科大讯飞参观学习分析 - -本次参观学习主要围绕科大讯飞的核心业务布局、技术现状及未来趋势展开,信息量丰富。以下是对你记录内容的系统化梳理与分析。 - -#### 一、 核心产品与市场表现 - -科大讯飞的产品线清晰,且在不同领域均有明确的市场定位。 - -1. **明星产品:办公本与学习机** - - **办公本**:定位为高效办公工具,旨在解决会议记录、文档处理等场景的痛点。你提到的“录音卡”是重要配件,说明其核心能力之一是语音转文字。 - - **学习机**:面向教育市场,是营收最大的板块。其核心功能已从简单的学习工具升级为“AI老师”,能够通过数据分析实现个性化辅导。 - -2. **高增长业务:AI+教育** - - **改作业机器**:这是一个极具代表性的产品。其销量增长9倍,说明市场对“减负”有强烈刚需。它的价值不仅在于批改,更在于**数据沉淀与分析**——能对题目进行分类统计,从而进行针对性辅导。这直接回应了“基层减负”的政策导向。 - - **受众**:不仅是学生,学校和教委也是重要客户。讯飞提供的“AI评价体系”能够帮助教委进行宏观教学质量评估,这使其产品具备了B端和G端双重价值。 - -3. **其他产品线** - - **翻译机与阿尔法蛋**:属于成熟产品线,获得了各级领导的认可,是品牌认知度的体现。 - - **AI+医疗**:前景广阔。通过“参加执业医师考试,超过96%考生”这一数据,可以直观感受到其技术实力。目前已在600多个县市医院应用,说明其技术已实现规模化落地,主要服务于基层医疗。 - -#### 二、 技术现状与挑战 - -1. **大模型技术**:这是当前热点。你记录的四次浪潮(1970, 1990, 2006, 2022)清晰地勾勒出AI发展的关键节点。2022年正是大模型爆发的起点,讯飞在此领域有深度布局。 -2. **同声传译的延迟问题**:这是一个明确的技术瓶颈。无论是耳机还是智能眼镜,目前都无法完美解决延迟。这说明实时翻译技术在追求“零延迟”体验上仍有挑战,是未来技术突破的关键方向。 - -#### 三、 行业合作与生态 - -1. **能源行业**:与国网公司、能源局的合作,表明讯飞正将AI能力拓展到传统行业,例如智能调度、设备巡检、数据分析等。这是“AI赋能千行百业”的典型体现。 -2. **教育行业**:与学校、教委的合作是深度绑定,不仅是卖产品,更是提供一套完整的解决方案(AI评价体系)。 - -#### 四、 个人学习反思与行动建议 - -1. **记录方式的优化**:你意识到“单纯扔一堆关键词”不如“体系化归纳”深刻,这是非常宝贵的自我觉察。建议后续参观时,可以尝试使用**思维导图**或**结构化笔记**(如:产品-技术-市场-挑战)来即时整理信息。 -2. **关键行动**:你明确提到“录音卡一定要买了”,这是基于对办公本核心功能(语音转文字)的认可。建议在购买后,立即将其融入日常工作流,例如用于会议记录、访谈整理等,最大化其价值。 -3. **关注点延伸**:基于本次参观,你可以进一步关注: - - **讯飞星火大模型**的迭代进展,特别是其在教育、医疗领域的应用案例。 - - **AI+能源**的具体场景,例如如何用AI优化电网负荷、预测设备故障等。 - - **教育板块的商业模式**,了解其如何通过硬件+软件+服务实现营收。 - -**总结**:科大讯飞是一家技术驱动、产品线清晰、在多个垂直行业(尤其是教育)已形成深度壁垒的公司。其核心优势在于**语音识别与自然语言处理技术**的积累,以及**将技术转化为解决实际问题的产品能力**。你今天的参观,已经抓住了其核心业务、技术现状和未来方向,是一次高质量的行业认知输入。 \ No newline at end of file diff --git a/analyzers/cross_analysis.py b/analyzers/cross_analysis.py new file mode 100644 index 0000000..b826984 --- /dev/null +++ b/analyzers/cross_analysis.py @@ -0,0 +1,68 @@ +import sys, os +sys.path.insert(0, "/home/ubuntu/inspiration-collector") +from tools.config import load_secrets, get_output_dir +from tools.llm import DeepSeekClient +from tools.memos_client import MemosClient +from datetime import datetime, timezone, timedelta +import subprocess + +secrets = load_secrets() +mc = MemosClient(secrets.get("memos_url", "http://localhost:5230"), secrets["memos_token"]) +llm = DeepSeekClient(secrets["deepseek_api_key"], secrets.get("deepseek_model", "deepseek-chat"), temperature=0.5) + +TZ_BJ = timezone(timedelta(hours=8)) + +memos = mc.list_memos(days=7) + +zju_keys = ["浙大", "浙江大学", "章丰", "有为与有效", "王坚", "黑土地", "牧场", "蓝天", "AI驱动", "产业发展新逻辑"] +thu_keys = ["清华", "清华大学", "企业战略", "价值网", "战略转折点", "只有偏执狂", "创新者的窘境", "精益创业", "反脆弱", "第二曲线"] + +zju_memos = [m for m in memos if any(k in m["content"] for k in zju_keys)] +thu_memos = [m for m in memos if any(k in m["content"] for k in thu_keys)] + +def fmt_memos(ms): + lines = [] + for m in ms: + ct = m["created_at"] + try: + dt = datetime.fromisoformat(ct.replace("Z", "+00:00")) + timedelta(hours=8) + ts = dt.strftime("%m/%d %H:%M") + except: + ts = ct[:16] + lines.append("- **[" + ts + "]** " + m["content"].strip()) + return "\n\n".join(lines) + +zju_text = fmt_memos(zju_memos) or "(无浙大相关内容)" +thu_text = fmt_memos(thu_memos) or "(无清华相关内容)" + +user_prompt = "以下是我在浙大和清华两所大学学习的记录,请分析两者之间的关联:\n\n" +user_prompt += "## 浙大学习内容\n\n" + zju_text + "\n\n" +user_prompt += "## 清华学习内容\n\n" + thu_text + "\n\n" +user_prompt += "请重点分析:1) 两个课程各自的核心理念 2) 两者之间是否存在逻辑关联或互补关系 3) 这些知识如何融合并指导我的实践" + +system_prompt = """你是一个学习伙伴。用户先后在浙江大学和清华大学参加了培训,记录了学习心得。 +请对两个课程的内容进行对比分析,找出其中的关联和互补关系。 +要求:引用原文、融会贯通、有实质内容,不少于2000字。输出纯Markdown。""" + +result = llm.ask(system_prompt=system_prompt, user_prompt=user_prompt) + +date = datetime.now(timezone.utc) +now_bj = datetime.now(TZ_BJ) +content = "---\ndate: " + date.strftime("%Y-%m-%d") + "\ntype: cross-analysis\ntags: [浙大, 清华, 对比分析]\n---\n\n" +content += result + +daily_dir = os.path.join(get_output_dir("daily"), date.strftime("%Y-%m-%d")) +os.makedirs(daily_dir, exist_ok=True) +now_str = now_bj.strftime("%H%M%S") +fname = date.strftime("%Y-%m-%d") + "_zju_thu_cross_analysis_" + now_str + ".md" +fpath = os.path.join(daily_dir, fname) +with open(fpath, "w", encoding="utf-8") as f: + f.write(content) + +print("Done: " + fpath + " (" + str(len(result)) + " chars)") + +proj = "/home/ubuntu/inspiration-collector" +subprocess.run(["git", "add", fpath], cwd=proj, capture_output=True, timeout=15) +subprocess.run(["git", "commit", "-m", "zju-thu cross analysis " + now_str], cwd=proj, capture_output=True, timeout=15) +subprocess.run(["git", "push", "origin", "main"], cwd=proj, capture_output=True, timeout=30) +print("Pushed to Gitea") diff --git a/analyzers/daily_digest.py b/analyzers/daily_digest.py index 0450dde..7aa3af2 100644 --- a/analyzers/daily_digest.py +++ b/analyzers/daily_digest.py @@ -180,7 +180,7 @@ def run(memos_client, llm_client, date=None): if not memos: logger.info("No memos today, skipping") - content = format_daily_digest(date, ai_body="今天没有记录灵感。") + content = format_daily_digest(date, ai_body="今天没有记录灵感。", tags=["灵感收集器", "每日总结", "静默"], doc_type="daily-digest") date_str = date.strftime("%Y-%m-%d") daily_dir = os.path.join(get_output_dir("daily"), date_str) os.makedirs(daily_dir, exist_ok=True) @@ -223,7 +223,7 @@ def run(memos_client, llm_client, date=None): ) # Step 5: Wrap with frontmatter and write - content = format_daily_digest(date, ai_body=raw_response) + content = format_daily_digest(date, ai_body=raw_response, tags=["灵感收集器", "每日总结", "AI分析"], doc_type="daily-digest") date_str = date.strftime("%Y-%m-%d") daily_dir = os.path.join(get_output_dir("daily"), date_str) diff --git a/analyzers/personality_analysis.py b/analyzers/personality_analysis.py new file mode 100644 index 0000000..7e20794 --- /dev/null +++ b/analyzers/personality_analysis.py @@ -0,0 +1,118 @@ +import sys, os, json +sys.path.insert(0, "/home/ubuntu/inspiration-collector") +from tools.config import load_secrets, get_output_dir +from tools.llm import DeepSeekClient +from tools.memos_client import MemosClient +from datetime import datetime, timezone, timedelta +import subprocess + +secrets = load_secrets() +mc = MemosClient(secrets.get("memos_url", "http://localhost:5230"), secrets["memos_token"]) +llm = DeepSeekClient(secrets["deepseek_api_key"], secrets.get("deepseek_model", "deepseek-chat"), temperature=0.7, max_retries=5) +TZ_BJ = timezone(timedelta(hours=8)) + +VAULT = "/home/ubuntu/obsidian-vault" + +def read_vault_sample(): + parts = [] + dirs_to_read = [ + "01 写作/随笔", "03 日志/日省录", "03 日志/交易日志", + "00 Inbox", "05 投资交易", "02 阅读学习/微信读书阅读摘录" + ] + for rel in dirs_to_read: + d = os.path.join(VAULT, rel) + if not os.path.isdir(d): continue + files = sorted([f for f in os.listdir(d) if f.endswith(".md")]) + for fname in files[:5]: + fpath = os.path.join(d, fname) + try: + with open(fpath, "r", encoding="utf-8", errors="ignore") as f: + c = f.read() + if c.startswith("---"): + idx = c.find("---", 3) + if idx != -1: c = c[idx+3:].strip() + if len(c) > 1500: c = c[:1500] + "\n...[截断]" + parts.append("### " + fname + "\n\n" + c) + except: pass + return "\n\n".join(parts) + +# Also read key philosophical/life reflection pieces +def read_key_writings(): + key_files = [ + "01 写作/随笔/朝闻道,夕死可矣之我见.md", + "01 写作/随笔/君子不立危墙之下.md", + "01 写作/随笔/我曾在魔窟走过一遭.md", + "01 写作/随笔/很多人的一生,就是狗生.md", + "01 写作/随笔/长时间的深入思考,才有可能灵光一闪.md", + "01 写作/个人修养十八字.md", + "01 写作/我的个人规则.md", + "01 写作/道之既出,淡乎其无味.md", + ] + parts = [] + for rel in key_files: + fp = os.path.join(VAULT, rel) + if not os.path.isfile(fp): continue + try: + with open(fp, "r", encoding="utf-8", errors="ignore") as f: + c = f.read() + if c.startswith("---"): + idx = c.find("---", 3) + if idx != -1: c = c[idx+3:].strip() + if len(c) > 2000: c = c[:2000] + "\n...[截断]" + parts.append("### " + rel + "\n\n" + c) + except: pass + return "\n\n".join(parts) + +memos_raw = mc.list_memos(days=30) +memo_texts = [] +for m in memos_raw: + ct = m["created_at"] + try: + dt = datetime.fromisoformat(ct.replace("Z", "+00:00")) + timedelta(hours=8) + ts = dt.strftime("%m/%d %H:%M") + except: + ts = ct[:16] + memo_texts.append("- [" + ts + "] " + m["content"].strip()) +memo_block = "\n".join(memo_texts[-50:]) + +print("Reading vault...") +vault_sample = read_vault_sample() +key_writings = read_key_writings() + +prompt = "以下是一个人的全部思想素材——他的私人写作、哲学思考、阅读笔记、日常灵感。请基于这些素材进行深度人格分析。\n\n" +prompt += "## 一、代表性随笔与哲学思考\n\n" + key_writings + "\n\n" +prompt += "## 二、文库代表性笔记\n\n" + vault_sample[:8000] + "\n\n" +prompt += "## 三、近期灵感碎片\n\n" + memo_block + "\n\n" +prompt += "请从三个维度回答:\n\n" +prompt += "### 1. 人格素描\n" +prompt += "用500字左右描述这个人的核心人格特征——他的动力来源、思维模式、情感模式、与世界互动的方式。不要套用MBTI标签,用他自己的语言和事例说话。\n\n" +prompt += "### 2. 最适合的哲学流派与作者\n" +prompt += "分析他天然亲近哪个哲学流派(存在主义?斯多葛?道家?儒家?尼采?),以及哪位作者的思想与他最为共振。要给出具体理由,引用他原文中的证据。\n\n" +prompt += "### 3. 生命之书类比\n" +prompt += "如果有人把他的思想、经历、感悟编撰成一本书,这本书会和市面上哪本现成的书最为相似?可以是小说、哲学著作、传记、随笔集。分析相似之处和差异。\n\n" +prompt += "请输出纯Markdown,字数不限,但务必有实质、有证据、有引用。" + +sp = "你是一个深度的文本分析者和人格解读者。你将从一个人的全部写作素材中,提炼出他的人格内核、哲学倾向和思想谱系。用他的原文作为证据,不要泛泛而谈。输出纯Markdown。" + +print("Calling DeepSeek API...") +result = llm.ask(system_prompt=sp, user_prompt=prompt) + +date = datetime.now(timezone.utc) +now_bj = datetime.now(TZ_BJ) +content = "---\ndate: " + date.strftime("%Y-%m-%d") + "\ntype: personality-deep\ntags: [人格分析, 哲学, 深度解读]\n---\n\n" +content += result + +daily_dir = os.path.join(get_output_dir("daily"), date.strftime("%Y-%m-%d")) +os.makedirs(daily_dir, exist_ok=True) +now_str = now_bj.strftime("%H%M%S") +fname = date.strftime("%Y-%m-%d") + "_personality_deep_" + now_str + ".md" +fpath = os.path.join(daily_dir, fname) +with open(fpath, "w", encoding="utf-8") as f: + f.write(content) + +print("Done: " + fpath + " (" + str(len(result)) + " chars)") +proj = "/home/ubuntu/inspiration-collector" +subprocess.run(["git", "add", fpath], cwd=proj, capture_output=True, timeout=15) +subprocess.run(["git", "commit", "-m", "deep personality analysis " + now_str], cwd=proj, capture_output=True, timeout=15) +subprocess.run(["git", "push", "origin", "main"], cwd=proj, capture_output=True, timeout=30) +print("Pushed") diff --git a/analyzers/thu_analysis.py b/analyzers/thu_analysis.py new file mode 100644 index 0000000..cdb7384 --- /dev/null +++ b/analyzers/thu_analysis.py @@ -0,0 +1,64 @@ +import sys, os +sys.path.insert(0, "/home/ubuntu/inspiration-collector") +from tools.config import load_secrets, get_output_dir +from tools.llm import DeepSeekClient +from tools.memos_client import MemosClient +from datetime import datetime, timezone, timedelta +import subprocess + +secrets = load_secrets() +mc = MemosClient(secrets.get("memos_url", "http://localhost:5230"), secrets["memos_token"]) +llm = DeepSeekClient(secrets["deepseek_api_key"], secrets.get("deepseek_model", "deepseek-chat"), temperature=0.5) + +TZ_BJ = timezone(timedelta(hours=8)) + +memos = mc.list_memos(days=7) +keywords = ["清华", "清华大学", "企业战略", "价值网", "战略转折点"] +thu_memos = [] +for m in memos: + if any(kw in m["content"] for kw in keywords): + thu_memos.append(m) + +if not thu_memos: + print("未找到清华相关灵感") + sys.exit(0) + +lines = [] +for m in thu_memos: + ct = m["created_at"] + try: + dt = datetime.fromisoformat(ct.replace("Z", "+00:00")) + timedelta(hours=8) + ts = dt.strftime("%m/%d %H:%M") + except: + ts = ct[:16] + lines.append("- **[" + ts + "]** " + m["content"].strip()) + +user_prompt = "以下是我在清华大学学习期间记录的灵感,请基于此写一篇专题分析:\n\n" + "\n\n".join(lines) +user_prompt += "\n\n请重点分析:1) 课程的核心理论框架 2) 推荐的书籍背景介绍 3) 这些知识如何与我的实践相结合" + +system_prompt = """你是一个私人学习伙伴。用户正在清华大学参加培训,以下是他记录的与企业战略课程相关的灵感。 +请只分析这些内容,不要涉及其他话题。 +要求:引用原文、融会贯通、有实质内容,不少于2000字。输出纯Markdown。""" + +result = llm.ask(system_prompt=system_prompt, user_prompt=user_prompt) + +date = datetime.now(timezone.utc) +now_bj = datetime.now(TZ_BJ) +content = "---\ndate: " + date.strftime("%Y-%m-%d") + "\ntype: thu-special\ntags: [清华学习, 企业战略, 专题分析]\n---\n\n" +content += result + +daily_dir = os.path.join(get_output_dir("daily"), date.strftime("%Y-%m-%d")) +os.makedirs(daily_dir, exist_ok=True) +now_str = now_bj.strftime("%H%M%S") +fname = date.strftime("%Y-%m-%d") + "_thu_analysis_" + now_str + ".md" +fpath = os.path.join(daily_dir, fname) +with open(fpath, "w", encoding="utf-8") as f: + f.write(content) + +print("Done: " + fpath + " (" + str(len(result)) + " chars)") + +proj = "/home/ubuntu/inspiration-collector" +subprocess.run(["git", "add", fpath], cwd=proj, capture_output=True, timeout=15) +subprocess.run(["git", "commit", "-m", "thu analysis " + now_str], cwd=proj, capture_output=True, timeout=15) +subprocess.run(["git", "push", "origin", "main"], cwd=proj, capture_output=True, timeout=30) +print("Pushed to Gitea") diff --git a/analyzers/zju_analysis.py b/analyzers/zju_analysis.py new file mode 100644 index 0000000..5810330 --- /dev/null +++ b/analyzers/zju_analysis.py @@ -0,0 +1,66 @@ +import sys, os, json +sys.path.insert(0, '/home/ubuntu/inspiration-collector') +from tools.config import load_secrets, get_output_dir +from tools.llm import DeepSeekClient +from tools.memos_client import MemosClient +from datetime import datetime, timezone, timedelta +import subprocess + +secrets = load_secrets() +mc = MemosClient(secrets.get("memos_url", "http://localhost:5230"), secrets["memos_token"]) +llm = DeepSeekClient(secrets["deepseek_api_key"], secrets.get("deepseek_model", "deepseek-chat"), temperature=0.5) + +TZ_BJ = timezone(timedelta(hours=8)) + +memos = mc.list_memos(days=7) +keywords = ["浙大", "浙江大学", "章丰", "有为与有效", "王坚", "黑土地", "牧场", "蓝天", "AI驱动", "产业发展新逻辑"] +zju_memos = [] +for m in memos: + content = m["content"] + if any(kw in content for kw in keywords): + zju_memos.append(m) + +if not zju_memos: + print("未找到浙大相关灵感") + sys.exit(0) + +lines = [] +for m in zju_memos: + ct = m["created_at"] + try: + dt = datetime.fromisoformat(ct.replace("Z", "+00:00")) + timedelta(hours=8) + ts = dt.strftime("%m/%d %H:%M") + except: + ts = ct[:16] + line = "- **[" + ts + "]** " + m["content"].strip() + lines.append(line) + +user_prompt = "以下是我在浙江大学学习期间记录的灵感,请基于此写一篇专题分析:\n\n" + "\n\n".join(lines) +user_prompt += "\n\n请重点分析:1) 课程的核心内容 2) 推荐的书和人物的背景介绍 3) 这些知识如何与我的个人系统构建相结合" + +system_prompt = """你是一个私人学习伙伴。用户正在浙江大学参加培训,以下是他记录的与学习相关的灵感。 +请只分析这些内容,不要涉及其他话题。 +要求:引用原文、融会贯通、有实质内容,不少于2000字。输出纯Markdown。""" + +result = llm.ask(system_prompt=system_prompt, user_prompt=user_prompt) + +date = datetime.now(timezone.utc) +now_bj = datetime.now(TZ_BJ) +content = "---\ndate: " + date.strftime("%Y-%m-%d") + "\ntype: zju-special\ntags: [浙大学习, 专题分析]\n---\n\n" +content += result + +daily_dir = os.path.join(get_output_dir("daily"), date.strftime("%Y-%m-%d")) +os.makedirs(daily_dir, exist_ok=True) +now_str = now_bj.strftime("%H%M%S") +fname = date.strftime("%Y-%m-%d") + "_zju_analysis_" + now_str + ".md" +fpath = os.path.join(daily_dir, fname) +with open(fpath, "w", encoding="utf-8") as f: + f.write(content) + +print("Done: " + fpath + " (" + str(len(result)) + " chars)") + +proj = "/home/ubuntu/inspiration-collector" +subprocess.run(["git", "add", fpath], cwd=proj, capture_output=True, timeout=15) +subprocess.run(["git", "commit", "-m", "zju analysis " + now_str], cwd=proj, capture_output=True, timeout=15) +subprocess.run(["git", "push", "origin", "main"], cwd=proj, capture_output=True, timeout=30) +print("Pushed to Gitea") diff --git a/analyzers/zju_brief.py b/analyzers/zju_brief.py new file mode 100644 index 0000000..4ef7d34 --- /dev/null +++ b/analyzers/zju_brief.py @@ -0,0 +1,52 @@ +import sys, os +sys.path.insert(0, "/home/ubuntu/inspiration-collector") +from tools.config import load_secrets, get_output_dir +from tools.llm import DeepSeekClient +from tools.memos_client import MemosClient +from datetime import datetime, timezone, timedelta +import subprocess + +secrets = load_secrets() +mc = MemosClient(secrets.get("memos_url", "http://localhost:5230"), secrets["memos_token"]) +llm = DeepSeekClient(secrets["deepseek_api_key"], secrets.get("deepseek_model", "deepseek-chat"), temperature=0.3) + +TZ_BJ = timezone(timedelta(hours=8)) +memos = mc.list_memos(days=7) + +keywords = ["浙大", "浙江大学", "章丰", "有为与有效", "王坚", "黑土地", "牧场", "蓝天", "AI驱动", "产业发展新逻辑"] +zju_memos = [m for m in memos if any(k in m["content"] for k in keywords)] + +lines = [] +for m in zju_memos: + ct = m["created_at"] + try: + dt = datetime.fromisoformat(ct.replace("Z", "+00:00")) + timedelta(hours=8) + ts = dt.strftime("%m/%d %H:%M") + except: + ts = ct[:16] + lines.append("- **[" + ts + "]** " + m["content"].strip()) + +prompt = "以下是我在浙大学习的相关灵感,请简要分析章丰老师课程的最新内容(1000字左右):\n\n" + "\n\n".join(lines) +sp = "你是一个学习伙伴,对浙大课程内容进行简要分析。控制在1000字左右,输出纯Markdown。" + +result = llm.ask(system_prompt=sp, user_prompt=prompt) + +date = datetime.now(timezone.utc) +now_bj = datetime.now(TZ_BJ) +content = "---\ndate: " + date.strftime("%Y-%m-%d") + "\ntype: zju-brief\ntags: [浙大, 简要分析]\n---\n\n" +content += result + +daily_dir = os.path.join(get_output_dir("daily"), date.strftime("%Y-%m-%d")) +os.makedirs(daily_dir, exist_ok=True) +now_str = now_bj.strftime("%H%M%S") +fname = date.strftime("%Y-%m-%d") + "_zju_brief_" + now_str + ".md" +fpath = os.path.join(daily_dir, fname) +with open(fpath, "w", encoding="utf-8") as f: + f.write(content) + +print("Done: " + fpath + " (" + str(len(result)) + " chars)") +proj = "/home/ubuntu/inspiration-collector" +subprocess.run(["git", "add", fpath], cwd=proj, capture_output=True, timeout=15) +subprocess.run(["git", "commit", "-m", "zju brief " + now_str], cwd=proj, capture_output=True, timeout=15) +subprocess.run(["git", "push", "origin", "main"], cwd=proj, capture_output=True, timeout=30) +print("Pushed") diff --git a/tools/formatter.py b/tools/formatter.py index e7aa5e3..8cb7d3a 100644 --- a/tools/formatter.py +++ b/tools/formatter.py @@ -3,20 +3,29 @@ from datetime import datetime -def format_daily_digest(date, ai_body): - """Wrap AI-generated Markdown body with frontmatter.""" +def format_daily_digest(date, ai_body, tags=None, doc_type="daily-digest"): + """Wrap AI-generated Markdown body with frontmatter, word count and reading time.""" date_str = date.strftime("%Y-%m-%d") weekday = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"][date.weekday()] + char_count = len(ai_body.replace(" ", "").replace("\n", "")) + read_min = max(1, round(char_count / 300)) + + if tags is None: + tags = ["灵感收集器", "每日总结"] + tag_str = ", ".join(["'" + t + "'" for t in tags]) + lines = [] lines.append("---") lines.append("date: " + date_str) - lines.append("type: daily-digest") - lines.append("tags: [灵感收集器, 每日总结]") + lines.append("type: " + doc_type) + lines.append("tags: [" + tag_str + "]") lines.append("---") lines.append("") lines.append("# " + date_str + " 灵感摘要 · " + weekday) lines.append("") + lines.append("> 本文共 **" + str(char_count) + "** 字 · 预计阅读 **" + str(read_min) + "** 分钟") + lines.append("") lines.append("## AI 分析(自动生成,请勿编辑)") lines.append("") lines.append(ai_body)