- 11:20~13:58 learn: [jami bot](#20250719112000)

- 14:00~14:39	js: [learn brain.js](#20250719140000)
- 14:40~15:39	learn: [playwright](#20250719144000)
- 16:00~16:59	learn: [佯谬及二次革命](#20250719160000)
This commit is contained in:
Huang,Yonggang 2025-07-19 21:12:03 +08:00
parent e092f07e39
commit 9bcce1abd5
2 changed files with 455 additions and 26 deletions

View File

@ -1,24 +1,453 @@
# 2025.07.19.
计划
小结
<a id="top"></a>
根据[ego模型时间接口](https://gitee.com/hyg/blog/blob/master/timeflow.md)今天绑定模版1(1d)。
| 时间片 | 时长 | 用途 | 手稿 |
| --- | --- | :---: | --- |
| 08:35~08:49 | 15 | 休整 | |
| 08:50~09:49 | 60 | 备餐、运动 | |
| 09:50~10:34 | 45 | 午餐 | |
| 10:35~11:19 | 45 | 会议、自习 | |
| 11:20~13:58 | 159 | 休整 | |
| 14:00~14:29 | 30 | 静默工作 | js:learn brain.js [在线](http://simp.ly/p/8t3vlk) [离线](../../draft/2025/20250719140000.md) <a href="mailto:huangyg@mars22.com?subject=关于2025.07.19.[js:learn brain.js]任务&body=日期: 20250719%0D%0A序号: 5%0D%0A手稿:../../draft/2025/20250719140000.md%0D%0A---请勿修改邮件主题及以上内容 从下一行开始写您的想法---%0D%0A">[想法]</a> |
| 14:30~14:59 | 30 | 静默工作 | learn:playwright [在线](http://simp.ly/p/5k9gJy) [离线](../../draft/2025/20250719143000.md) <a href="mailto:huangyg@mars22.com?subject=关于2025.07.19.[learn:playwright]任务&body=日期: 20250719%0D%0A序号: 6%0D%0A手稿:../../draft/2025/20250719143000.md%0D%0A---请勿修改邮件主题及以上内容 从下一行开始写您的想法---%0D%0A">[想法]</a> |
| 15:00~15:59 | 60 | 休整 | |
| 16:00~16:59 | 60 | 静默工作 | learn:佯谬及二次革命 [在线](http://simp.ly/p/4QDThK) [离线](../../draft/2025/20250719160000.md) <a href="mailto:huangyg@mars22.com?subject=关于2025.07.19.[learn:佯谬及二次革命]任务&body=日期: 20250719%0D%0A序号: 8%0D%0A手稿:../../draft/2025/20250719160000.md%0D%0A---请勿修改邮件主题及以上内容 从下一行开始写您的想法---%0D%0A">[想法]</a> |
| 17:00~18:59 | 120 | 晚餐 | |
| 19:00~19:59 | 60 | 讨论、整理提交 | |
<a id="index"></a>
- 11:20~13:58 learn: [jami bot](#20250719112000)
- 14:00~14:39 js: [learn brain.js](#20250719140000)
- 14:40~15:39 learn: [playwright](#20250719144000)
- 16:00~16:59 learn: [佯谬及二次革命](#20250719160000)
---
season stat:
- 14:00~14:29 js: [learn brain.js](../../draft/2025/20250719.01.md)
- 14:30~14:59 learn: [playwright](../../draft/2025/20250719.02.md)
- 16:00~16:59 learn: [佯谬及二次革命](../../draft/2025/20250719.03.md)
| task | alloc | sold | hold | todo |
| :---: | ---: | ---: | ---: | ---: |
| total | 13530 | 2136 | 11394 | 7260 |
| PSMD | 4000 | 90 | 3910 | 1110 |
| ego | 2530 | 290 | 2240 | 1335 |
| infra | 2000 | 335 | 1665 | 150 |
| xuemen | 1000 | 90 | 910 | 540 |
| raw | 1000 | 0 | 1000 | 390 |
| learn | 2000 | 1081 | 919 | 2055 |
| js | 1000 | 250 | 750 | 1680 |
---
waiting list:
- 30分钟时间片
- learn的第3号事项react ink
- js的第9号事项copilot
- PSMD的第10号事项整理闫岸家政能力讨论
- js的第10号事项node.js
- 60分钟时间片
- raw的第1号事项设计新的季度时间表
- learn的第1号事项jami bot
- js的第1号事项giiter.im bot sample
- infra的第2号事项动态菜单设计。
- 90分钟时间片
- PSMD的第1号事项整理default模型
- ego的第1号事项整理js对象检索的代码
- infra的第1号事项schema立项。
- xuemen的第1号事项mail server
- 195分钟时间片
- PSMD的第2号事项machines model
- xuemen的第2号事项kernel模型升级
- xuemen的第3号事项重新设计S2状态下的学门基本管理制度
- ego的第5号事项新版ego, instance or model, any manifest
---
<a href="mailto:huangyg@mars22.com?subject=关于2025.07.19.[jami bot]任务&body=日期: 2025.07.19.%0D%0A序号: 4%0D%0A手稿:../../draft/2025/20250719.a.md%0D%0A---请勿修改邮件主题及以上内容 从下一行开始写您的想法---%0D%0A">[email]</a> | [top](#top) | [index](#index)
<a id="20250719112000"></a>
## 11:20 ~ 13:58
## learn: [jami bot]
- d:\huangyg\git\js.sample\jami\
### claude code
- npm包名有幻觉提醒后修改可以npm install。
- 下个时间片实际运行看看。
### kimi问答
- 点击链接查看和 Kimi 的对话 https://www.kimi.com/share/d1tja1up4uo1t5rfcsmg
- plink hyg@chat.aigc.ing
- 测试路径的model丰富可以作为聊天用。
- 窗口太小,没找到设置方式。
- 更换语言界面,怎么操作都没反应。
- 直接输入中文是乱码。
- 开源可以自己二次开发bot自己部署。
- npm install git+https://gitlab.com/jami-project/jami-lib-node.git#main
- 错误的库名,或者已经转为私有、删除。
- https://github.com/savoirfairelinux/jami-daemon/tree/master/bin/dbus
- 一些xml接口设置
- https://github.com/savoirfairelinux/jami-daemon/tree/master/bin/nodejs
- winget install SFLinux.Jami
- dbus没能按kimi判断那样使用。也无法判断jami客户端运行后是不是deamon就启动了。根据用户的情况还是以windows为主。所以暂时放弃开发jami bot仅限个人自用。
### tox
- toxhttps://tox.chat/download.html
- npm config set proxy http://127.0.0.1:9910
- npm config set https-proxy http://127.0.0.1:9910
- npm install https://github.com/node-ffi/node-ffi
- npm config delete proxy
- npm config delete https-proxy
- 安装不成功。先不再试。
### matrix
- 已经可以访问了。
- https://matrix.org
- https://servers.joinmatrix.org/
- 已经有todo项提高排序位置。
### briar
- 根据我找到的信息以下是关于Briar API的详细资料
## Briar Headless REST API
Briar项目有一个headless客户端版本它暴露了REST API。这是一个最小版本的headless客户端支持列出/写入私人消息和博客帖子并且有基本的支持来列出其他PrivateMessageHeaders和接收它们。
## 主要特性
Briar是一个开源软件通信技术旨在提供安全且具有弹性的点对点通信无需中央服务器对外部基础设施的依赖最小。消息可以通过蓝牙、Wi-Fi、通过Tor的互联网或USB存储等可移动存储传输。所有通信都是端到端加密的。
## API 架构
Briar peer使用websocket来通知连接的API客户端新事件。在建立连接后您必须立即向websocket发送认证令牌作为消息。如果您未能这样做您将不会在该socket上收到消息。
## API文档现状
目前API的文档直接写在其readme文件中这表明文档还比较简单正在改进中。
## Node.js集成示例
基于找到的信息以下是一个基本的Node.js集成示例
```
const WebSocket = require('ws');
const axios = require('axios');
class BriarClient {
constructor(baseURL = 'http://localhost:7000', wsURL = 'ws://localhost:7000/v1/ws') {
this.baseURL = baseURL;
this.wsURL = wsURL;
this.token = null;
this.ws = null;
// 创建axios实例
this.api = axios.create({
baseURL: this.baseURL + '/v1',
headers: {
'Content-Type': 'application/json'
}
});
}
// 认证并获取token
async authenticate(password) {
try {
const response = await this.api.post('/session', {
password: password
});
this.token = response.data.token;
// 设置认证头
this.api.defaults.headers.common['Authorization'] = `Bearer ${this.token}`;
console.log('认证成功');
return this.token;
} catch (error) {
console.error('认证失败:', error.response?.data || error.message);
throw error;
}
}
// 连接WebSocket以接收实时事件
connectWebSocket() {
if (!this.token) {
throw new Error('需要先认证');
}
this.ws = new WebSocket(this.wsURL);
this.ws.on('open', () => {
console.log('WebSocket连接已建立');
// 发送认证token
this.ws.send(this.token);
});
this.ws.on('message', (data) => {
try {
const event = JSON.parse(data);
this.handleEvent(event);
} catch (error) {
console.error('解析WebSocket消息失败:', error);
}
});
this.ws.on('error', (error) => {
console.error('WebSocket错误:', error);
});
this.ws.on('close', () => {
console.log('WebSocket连接已关闭');
});
}
// 处理接收到的事件
handleEvent(event) {
switch (event.type) {
case 'ConversationMessageReceivedEvent':
console.log('收到新消息:', event.data);
this.onMessageReceived(event.data);
break;
case 'ContactRemovedEvent':
console.log('联系人被移除:', event.data);
break;
default:
console.log('未知事件类型:', event);
}
}
// 获取联系人列表
async getContacts() {
try {
const response = await this.api.get('/contacts');
return response.data;
} catch (error) {
console.error('获取联系人失败:', error.response?.data || error.message);
throw error;
}
}
// 获取与特定联系人的对话
async getConversation(contactId) {
try {
const response = await this.api.get(`/contacts/${contactId}/messages`);
return response.data;
} catch (error) {
console.error('获取对话失败:', error.response?.data || error.message);
throw error;
}
}
// 发送私人消息
async sendPrivateMessage(contactId, text) {
try {
const response = await this.api.post(`/contacts/${contactId}/messages`, {
text: text
});
return response.data;
} catch (error) {
console.error('发送消息失败:', error.response?.data || error.message);
throw error;
}
}
// 添加联系人(通过联系人链接)
async addContact(link) {
try {
const response = await this.api.post('/contacts', {
link: link
});
return response.data;
} catch (error) {
console.error('添加联系人失败:', error.response?.data || error.message);
throw error;
}
}
// 获取自己的联系人链接
async getContactLink() {
try {
const response = await this.api.get('/contacts/add');
return response.data.link;
} catch (error) {
console.error('获取联系人链接失败:', error.response?.data || error.message);
throw error;
}
}
// 创建博客帖子
async createBlogPost(text) {
try {
const response = await this.api.post('/blogs/posts', {
text: text
});
return response.data;
} catch (error) {
console.error('创建博客帖子失败:', error.response?.data || error.message);
throw error;
}
}
// 获取博客帖子
async getBlogPosts() {
try {
const response = await this.api.get('/blogs/posts');
return response.data;
} catch (error) {
console.error('获取博客帖子失败:', error.response?.data || error.message);
throw error;
}
}
// 消息接收回调(可以重写)
onMessageReceived(message) {
console.log(`收到来自 ${message.contactId} 的消息: ${message.text}`);
}
// 断开连接
disconnect() {
if (this.ws) {
this.ws.close();
}
}
}
// 使用示例
async function example() {
const client = new BriarClient();
try {
// 1. 认证
await client.authenticate('your-password');
// 2. 连接WebSocket接收实时事件
client.connectWebSocket();
// 3. 获取联系人列表
const contacts = await client.getContacts();
console.log('联系人列表:', contacts);
// 4. 发送消息给第一个联系人
if (contacts.length > 0) {
const contactId = contacts[0].contactId;
await client.sendPrivateMessage(contactId, 'Hello from Node.js bot!');
}
// 5. 创建博客帖子
await client.createBlogPost('这是一个来自API的博客帖子');
// 6. 重写消息接收处理
client.onMessageReceived = (message) => {
console.log(`机器人收到消息: ${message.text}`);
// 简单的自动回复逻辑
if (message.text.includes('hello')) {
client.sendPrivateMessage(message.contactId, '你好我是一个Briar机器人。');
}
};
} catch (error) {
console.error('示例执行失败:', error);
}
}
// 导出类
module.exports = BriarClient;
// 如果直接运行此文件,执行示例
if (require.main === module) {
example();
}
```
## 部署和使用步骤
### 1. 安装Briar Headless
```bash
# 从源码编译需要Java环境
git clone https://code.briarproject.org/briar/briar.git
cd briar
./gradlew :briar-headless:assemble
# 或下载预编译版本
```
### 2. 启动Headless服务
```bash
# 启动Briar headless默认端口7000
java -jar briar-headless/build/libs/briar-headless.jar --password your-password
```
### 3. API端点
基于找到的信息主要API端点包括
- `POST /v1/session` - 认证获取token
- `GET /v1/contacts` - 获取联系人列表
- `POST /v1/contacts` - 添加联系人
- `GET /v1/contacts/{contactId}/messages` - 获取对话消息
- `POST /v1/contacts/{contactId}/messages` - 发送私人消息
- `GET /v1/blogs/posts` - 获取博客帖子
- `POST /v1/blogs/posts` - 创建博客帖子
- `WS /v1/ws` - WebSocket连接接收实时事件
## 注意事项
1. **文档限制**API文档目前还比较简单主要在readme文件中功能可能不够完整。
2. **功能限制**当前的headless版本功能相对基础主要支持私人消息和博客帖子。
3. **开发状态**这个API还在积极开发中可能会有变化。
4. **安全性**所有通信都是端到端加密的API本身也需要认证。
如果需要更详细的文档建议直接查看官方GitLab仓库中的briar-headless目录。
- 文档和API还不成熟暂时不开发bot。
---
<a href="mailto:huangyg@mars22.com?subject=关于2025.07.19.[learn brain.js]任务&body=日期: 2025.07.19.%0D%0A序号: 5%0D%0A手稿:../../draft/2025/20250719.01.md%0D%0A---请勿修改邮件主题及以上内容 从下一行开始写您的想法---%0D%0A">[email]</a> | [top](#top) | [index](#index)
<a id="20250719140000"></a>
## 14:00 ~ 14:39
## js: [learn brain.js]
- https://github.com/BrainJS/brain.js
- https://brain.js.org/
- √是神经网络学习不是LLM。
- d:\huangyg\git\js.sample\brainjs\
- npm install --save brain.js
- 报错。需要本地rebuild。先不试了。
- 直接下载unpkg.com的brain.js,测试ok。
```
D:\huangyg\git\js.sample\brainjs>node main
net.run([1, 0]): Float32Array(1) [ 0.9334105253219604 ]
net.run([0, 1]): 1
net.run([1, 0]): 0
net.run([1, 1]): 0
net.run({ r: 1, g: 0.4, b: 0 }): { black: 0.01861307956278324, white: 0.9824023246765137 }
net.run({ r: 1, g: 0.4, b: 0 }): { black: 0.196854829788208, white: 0.8054252862930298 }
```
- main.html用<script src="//unpkg.com/brain.js"></script>测试ok。
---
<a href="mailto:huangyg@mars22.com?subject=关于2025.07.19.[playwright]任务&body=日期: 2025.07.19.%0D%0A序号: 6%0D%0A手稿:../../draft/2025/20250719.02.md%0D%0A---请勿修改邮件主题及以上内容 从下一行开始写您的想法---%0D%0A">[email]</a> | [top](#top) | [index](#index)
<a id="20250719144000"></a>
## 14:40 ~ 15:39
## learn: [playwright]
- https://playwright.nodejs.cn/
- d:\huangyg\git\js.sample\playwright\
- npm init playwright@latest
- 用page.content()抓取的页面返回http 500错误。没有实际内容。
- 不适合raw项目的营养成分表抓取。遇到其它需求时再另外安排试用。
---
<a href="mailto:huangyg@mars22.com?subject=关于2025.07.19.[佯谬及二次革命]任务&body=日期: 2025.07.19.%0D%0A序号: 8%0D%0A手稿:../../draft/2025/20250719.03.md%0D%0A---请勿修改邮件主题及以上内容 从下一行开始写您的想法---%0D%0A">[email]</a> | [top](#top) | [index](#index)
<a id="20250719160000"></a>
## 16:00 ~ 16:59
## learn: [佯谬及二次革命]
- 学习相关数学概念后,重新消化 https://wuli.iphy.ac.cn/en/article/pdf/preview/10.7693/wl20221201.pdf
- 贝尔不等式把理论上的争论,转化成实验友好的不等式判据。
- 贝尔实验的“定域性漏洞”和“测量漏,几十年接力终于消除漏。介绍诺奖的价值。
- 因果律:
- √ 抛硬币是因50%【正面向上+反面向下】+50%【正面向下+反面向上】是果。
- × 正面向上是因,反面向下是果。
- × 观察正面是因,反面朝向是果。
- 量子导引quantum steering和系综Ensemble https://baike.baidu.com/item/%E7%B3%BB%E7%BB%BC%E8%AF%A0%E9%87%8A/22361465
- 下面时间片重点看看图7开始的新实验也是作者团队的贡献。弱纠缠、强非定域性。

View File

@ -27,30 +27,30 @@
- 07:45 设计新的季度时间表 -raw[0]
- 09:30 整理default模型 -PSMD[0]
- 14:00 copilot -js[7]
- 14:30 node.js -js[8]
- 16:00 LangChain.js -js[0]
- 14:00 react ink -learn[2]
- 14:30 copilot -js[8]
- 16:00 jami bot -learn[0]
---
如果绑定模版1b可能安排以下任务
- 09:30 整理default模型 -PSMD[0]
- 14:00 copilot -js[7]
- 14:30 node.js -js[8]
- 14:00 react ink -learn[2]
- 14:30 copilot -js[8]
- 16:00 设计新的季度时间表 -raw[0]
---
如果绑定模版1c可能安排以下任务
- 14:00 copilot -js[7]
- 14:30 node.js -js[8]
- 14:00 react ink -learn[2]
- 14:30 copilot -js[8]
- 16:00 设计新的季度时间表 -raw[0]
---
如果绑定模版1d可能安排以下任务
- 14:00 copilot -js[7]
- 14:30 node.js -js[8]
- 14:00 react ink -learn[2]
- 14:30 copilot -js[8]
- 16:00 设计新的季度时间表 -raw[0]
---