-
这个思源设置让你的一天从正能量开始!
2025-04-20 16:33因为你 useState 没用对。
//!js const chat = async () => { // Initialize DataView let dv = Query.DataView(protyle, item, top); // Render the initial elements added (title, prompt, placeholder) dv.render(); const gptReply = dv.useState('gpt-reply', ''); dv.addmd(`#### GPT Direct Send`); const predefinedPrompt = "今天真是美好的一天,请你激励我度过美好的一天吧!请你用满满的正能量激励我,并且要加入很多的表情,让我的心情愉快!"; dv.addmd(`**You**: ${predefinedPrompt}`); // Display the message being sent if (gptReply.value) { dv.addmd(`**GPT**: ${gptReply.value}`); // Display the previous response return; } let respond = dv.addmd(`**GPT**: Thinking...`); let id = respond.dataset.id; try { const response = await Query.gpt(predefinedPrompt, { stream: true, streamInterval: 3, streamMsg: (content) => { dv.replaceView(id, dv.md(`**GPT**: ${content}`)); } }); dv.replaceView(id, dv.md(`**GPT**: ${response}`)); gptReply.value = response; // 记录 state } catch (error) { dv.replaceView(id, dv.md(`**GPT**: Error: ${error.message}`)); } } // Execute the chat function immediately return chat();
-
这个思源设置让你的一天从正能量开始!
2025-04-20 16:15这里没有必要使用 useState,你只需要进行一次单轮对话就行,没必要把对话记录全都缓存下来。
你这么做会导致对话的 message 长度越来越长。
-
这个思源设置让你的一天从正能量开始!
2025-04-20 16:12其实可以把 dv.render 放到最前面
// Initialize DataView let dv = Query.DataView(protyle, item, top); // Render the initial elements added (title, prompt, placeholder) dv.render();
-
大家来晒晒自己使用自定义块属性的用法?可以通过块属性来聚合有相同属性的块吗?
2025-03-30 16:59- 可以和模板配合使用,创建含有特定属性的块,这样方便后期查询
- 见 QueryView(不过暂时下架了,过几天会重新上架回来)
- JS 代码片段;或者嵌入块内执行 JS 查询
比如我的日记模板里面有一个「总结」部分,里面会自动写入一个自定义属性;这样可以在每周汇总里面通过查询代码,把每天的总结汇总显示。(如果不使用自定义属性也能查询,但是复杂度会高很多)
-
Cherry Studio 支持导出到思源了
2025-03-29 00:22之前做了把 Cherry 导出的 Markdown 重新导入为对话记录的功能,研究的过程中顺手给官方提了一个 issue。
-
插件开发求助:思源如何实现创建指定日期的日记
2025-03-13 00:12不想自己实现也可以手动安装 npm install @frostime/siyuan-plugin-kits, 然后
import {createDailynote}
-
能否在工作空间之间移动笔记?
2025-03-05 00:50F 工具箱插件里有一个跨工作空间发送的功能。
你开启功能后,同时打开另一个工作空间,填写那个空间的网络端口,可以把一整个目录树全都发过去。
不过这个功能我自己用的也很少,不保证是否会出问题。建议用之前先给快照打一个标签。
-
字节的火山平台可以配置 Deepseek + 联网功能
2025-02-23 15:46gemini 有 flash think 版本,是有思考的。
OpenAI 的 O1 O3 系列模型也是有思考的。
-
字节的火山平台可以配置 Deepseek + 联网功能
2025-02-23 01:11V3 平台,一个 API 聚合的。在国内看过的几个聚合平台里看着还算靠谱吧。
V API - 为您提供稳定可靠的Openai GPT4 API、Deepseek r1直连转发服务!
本质上和国外的 OpenRouter ( https://openrouter.ai/ )是类似的定位。
-
教程 --- 思源 ai 接入字节跳动 API(送 350Wtoken/dp 的 50 元额度,实测赠送余额和付费没有区别,一样快)
2025-02-21 14:56 -
将反向链接和数据库结合的尝试
2025-02-20 22:40把 stream 模式关掉,然后给我看一下完整的发送和返回的消息数据。
目前在里面看到了
references
这二者字段里有一些内容,不过这个好像不是 OpenAI 标准格式。建议到 github 上面去提,在这里不是很方便。
-
SQL 小助手
2025-02-16 20:45试一下这个
select * from blocks where type = 'p' and markdown like '% limit 999
SQL 里面不要有注释字符串。
-
SQL 小助手
2025-02-15 13:15我是为了方便展示用 Query View 渲染成列表了。你想要这种效果可以把 SQL 代码放到 Query.sql 里查询,然后进行渲染。
//!js const query = async () => { let dv = Query.Dataview(protyle, item, top); let block = await Query.thisDoc(protyle); let blocks = await Query.sql(` select distinct D.* from blocks as D where D.type = 'd' and D.id in ( select def_block_id from refs where block_id in ( select B.id from blocks as B where B.root_id in ( select BL.id from blocks as BL join attributes as A on BL.id = A.block_id where A.name like 'custom-dailynote-%' and BL.type = 'd' and A.value >= strftime('%Y%m%d', date('now', '-7 day')) and A.value <= strftime('%Y%m%d', 'now') ) ) ) `) blocks = await Query.fb2p(blocks); dv.addList(blocks, { type: 'o', columns: 2 }); dv.render(); } return query();
-
将反向链接和数据库结合的尝试
2025-02-11 12:31不接单。
我的意思是,父子关系本质上是一种单向的箭头关系。如果你平时不使用双链,完全可以将双链工具视为构建父子文档单向关系的辅助手段。例如,在一个文档中插入指向另一个文档的引用,那么在目标文档中显示的所有“反向链接”,都可以暂时视为该文档的“逻辑子文档”。
如果你平时已经习惯使用双链功能,也参考我提到的 SuperRef 思路,在引用数据库中添加一个字段,用于标明引用的类型。对于父子关系的引用,你可以将类型明确标注为“父子文档”或其他类似的标识。
-
siyuan 使用 deepseek-r1 白嫖教程(14¥)与使用经验 (绘图,知识讲解)
2025-02-07 23:43话说硅基流动是不是只有新注册才能有赠送啊,我很久以前就注册过用别人的邀请好像没反应。😳
-
siyuan 使用 deepseek-r1 白嫖教程(14¥)与使用经验 (绘图,知识讲解)
2025-02-07 23:41也可以 Ctrl+Shift+L 快捷键打开一个对话。这个快捷键有一个彩蛋是如果你选择了笔记的内容块然后按快捷键的话,会自动把笔记内容也插入到输入框里面。
-
更新一下 fmisc GPT 对话的功能
2025-02-05 10:47- 没听明白你想要表达的是什么,把“什么”放到“侧边工具栏”?你想要达成的效果是什么?
- 有一个插件叫做“文献引用”,参考他说明文档里面讲的,如何「通过 debug bridge 连接 zotero」
-
0 基础的 AI 插件开发进入死循环,求救!
2025-01-27 20:50别的先且不说首先你这儿目录结构就是错的,i18n 目录下应该直接就是 json 文件,你额外嵌套了一些无用的目录结构。
然后进去第一行代码也是错的,
@siyuan-sdk
是社区的一个第三方库,需要你打包进去才能使用,在思源环境下你是获取不到这个包的。这里应该改成
require("siyuan");
内核 API 调用也有问题,第一个函数的 API 是不存在的;而 SQL 查询的 API 的第二个参数
args
实际上也并不存在。其他的问题也有一大堆,比如大量调用了不存在的 API 例如
this.app.pushNotification
等等。你如果完全没有基础,也没有参考,让 AI 直接给你写一个插件是很困难的一件事。
你可以尝试着把这篇文章,还有插件的一些用法示例喂给 AI,不过也不保证能成功。
不过说实话,如果你真的完全对开发一点了解都没有,我不是很建议你对这 AI 死磕,大概率不会产出什么好的效果。。