最近OpenAI官方发布了o1模型,号称史上最强的AI模型,一开始没理解厉害在哪,当有目的的体验后才发现了它的强大。

这里Mark下关于o1,我所了解到的。

AGI等级体系

首先了解下OpenAI对于AI能力进行的等级划分。其中可以感受到当等级越高,能力就越强。

阅读全文 »

今天ChatGPT的高级语音模式开始对外灰度了,使用后觉得还不错,所以用文章来记录一下使用情况。

使用门槛

  • 当前只对Plus和Team会员开放,且还在灰度中,预计本周全量。

    Advanced Voice is rolling out to all Plus and Team users in the ChatGPT app over the course of the week. While you’ve been patiently waiting, we’ve added Custom Instructions, Memory, five new voices, and improved accents.

    Advanced Voice is not yet available in the EU, the UK, Switzerland, Iceland, Norway, and Liechtenstein.

  • 如果你是会员,但还是提示“当前无法使用”,可以尝试升级App到最新版,重新登录账号以尝试获取资格,社区里有提到卸载重装才获得资格,总之几种策略都可以试试。如果都不行,耐心等待灰度命中吧。

使用平台

  1. ChatGPT Mac App
  2. ChatGPT iOS App
  3. ChatGPT Android App
阅读全文 »

之前将博客接入了Google/百度/Bing,但是没有接入头条搜索,今天接入了头条搜索,记录一下接入过程。

  1. 添加站点
    头条这里并不支持直接包含子站点,因此每个域名都需要单独添加。
  2. 网站验证,添加文件或meta标签,这里我选择meta标签。
  3. 提交sitemap。
  4. 配置自动收录,即添加JS代码到站点里。

站点:https://zhanzhang.toutiao.com/

一般免密登录为了保证安全性,都是使用的公私钥方式。这里Mark下配置方式

  1. 登录客户端机器创建公私钥,如果有的话不需要创建。

    公私钥存储位置在~/.ssh下。

  2. 登录目标服务器上,打开~/.ssh/authorized_keys文件。

    authorized_keys文件记录着授权登录的公钥列表。

  3. 拷贝客户端机器的公钥到该文件中,保存。

  4. 重新SSH登录目标机器,发现并不需要输入密码了。

基于xterm.js的webshell在实现选中文件名直接下载文件时遇到了困难,这个feat里如何获取文件名所在的目录。经过实际调研确定了解决方案,这里Mark下。

实现方案

  1. 首先终端会话留中能够返回每次命令执行后的目录是利用了函数钩子。

  2. 这里利用registerOscHandler,来监听Ansi序列,进而提取整个数据中的CurrentDir。

1
2
3
4
5
6
7
const cwdArr = []; // index 0没用到
term.parser.registerOscHandler(1337, data => {
const currenDirArr = data?.match?.(/(;CurrentDir=)([^;\u0007]+)/);
if (currenDirArr?.length >= 3) {
cwdArr[term.buffer.active.baseY + term.buffer.active.cursorY] = currenDirArr[2];
}
})
  1. 监听选中事件,根据选中的位置结合cwdArr来计算选中文件名所在的CWD路径。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    term.onSelectionChange(() => {
    const selection = term.getSelection();
    if (!selection) {
    return;
    }
    const selectionPosition = term.getSelectionPosition();
    term.getSelection() && copyToClipboard(term.getSelection());
    let rowNum = selectionPosition.start.y; // 行号
    while (rowNum < cwdArr.length && !cwdArr[rowNum]) {
    rowNum++;
    }
    const cwd = cwdArr[rowNum];
    console.log('选中文件', pathJoin(cwd, selection));
    });
阅读全文 »
0%