giffgaff到手一晃就半年了,该续期了。
昨天先按照传统的发短信,短信发完到app里面一看,9.69。9.99-0.3=9.69 (gg有个祖传bug,余额10会自动变成9.99),没问题。但突然想到,会不会以前不小心发过,这0.3不是今天用的 ?有时候iphone会说开通facetime要发短信等等。查app里面credit使用清单但为空。说是24小时可能才更新,今天再看,还是没。。
好吧,第二招,打开数据开通漫游,维持了5秒左右,然后再关掉,再刷余额,哈,变9.67了。这次应该没问题了,虽然使用详单还是为空。那以后也可以这样来保号,一号传三代,人死号还在啊。半年0.02,一年就0.04,9.67,可以刷241年啊啊啊啊。

图片_20250207203823.jpg
图片_20250207203830.jpg

一直有人说,deepseek的本地版本是不存在审查的。
我试了一下,呵呵,真的太天真了。不知道鼓吹这个的是傻还是坏? 我倾向是后者。
从截图可以看到,deepseek对政治和色情都进行了自我审查,同时,对政治具有更高的否定优先级。

  • 仅仅测试红线,不代表本人的政治观点

limit.jpg

这几天不知道谁无聊,拿我这1ip博客的评论来发广告,就1ip这广告发得一点用没有浪费感情嘛,只是把我弄烦了,要天天上来删广告,所以,简单的过滤一下。
用常规的关键字过滤什么太low了,用ai来识别了。

在var/Widget/Base/Comments.php最后面增加一个函数,让ai为输入的文字的广告味打分,0-9。
这个函数其实用在别的php的系统里也是可以的了,它并没有调用typecho的内部模块啥的。

private function checkAdv(string $inputWords): int {
    $apiKey = "xxxxxxxxx";
    $apiUrl = 'https://api.deepseek.com/v1/chat/completions';   //openai等等相应的改改了

    $systemPrompt = '你是一个广告检测助手。你的任务是对用户输入的文本进行广告嫌疑评分,评分范围为0-9,规则如下:0:无广告嫌疑 5:可能有广告嫌疑(临界值) 9:确定是广告。你只能回答一个0-9的整数,禁止包含任何其他文字或解释。';

    $requestData = [
        'model' => 'deepseek-chat',
        'messages' => [
            [
                'role' => 'system',
                'content' => $systemPrompt
            ],
            [
                'role' => 'user',
                'content' => $inputWords
            ]
        ],
        'max_tokens' => 1, 
        'temperature' => 0.1 
    ];

    $ch = curl_init($apiUrl);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => json_encode($requestData),
        CURLOPT_HTTPHEADER => [
            'Content-Type: application/json',
            'Authorization: Bearer ' . $apiKey
        ],
        CURLOPT_TIMEOUT => 5
    ]);
    //Author: https://blog.lostshit.com

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    if (curl_errno($ch)) {
        curl_close($ch);
        return 0; 
    }
    curl_close($ch);

    if ($httpCode === 200) {
        $result = json_decode($response, true);
        
        if (isset($result['choices'][0]['message']['content'])) {
            $score = trim($result['choices'][0]['message']['content']);
            if (is_numeric($score)) {
                return max(0, min(9, (int) $score)); 
            }
        }
    }
    return 0; 
}

然后,在public funtion insert这函数里面,比如 if (!empty($rows['coid'])) 这句前面加上:

        $score=$this->checkAdv($insertStruct['text']);
        if ($score>=5) {
          die("对不起,AI说这是广告。。。如果错了,还请你见谅。");
        }

搞定。

前几天我还在夸他家好用,结果闹了半天是这么回事。。。
当然,大家又可以欢呼,在蒸馏上我们遥遥领先了。 这可不是乱说,抖阴和头条上这是主旋律。

图片_20250131232449.jpg

甲骨文免费机要求cpu不能长期闲置,否则可能会认为机器空闲而回收。所以,有了下面的要求。 这是个很简单的程序了,显然是交给AI,今天无聊,我同时让几个AI来写想来对比一下。我很惊讶的是比较结果。

省流: DeepSeek > Claude > ChatGpt > Llama * claude和gpt的排名不是太确定,第一和最后是很确定的。
代码核心是怎么控制cpu占用,下面我就只贴出来相关代码,其它省略了。

prompt: 帮我写段linux的c代码,cpu.c,它是让cpu空转的。它可以跟一个参数,比如 ./cpu 10 ,表示占用10%的cpu资源。 需要多cpu多线程下也能工作。 程序运行后fork到后台,永远执行。
*都只是向ai发起第一次询问时取这条结果,没有再次的交互。

ChatGPT:
仅仅是sleep一下,这个并不会消耗cpu资源。

// 单线程函数,用于控制 CPU 占用率
void* control_cpu(void* arg) {
    int usage = *(int*)arg;
    struct timespec busy_time, idle_time;

    // 计算忙碌时间和空闲时间
    busy_time.tv_sec = 0;
    busy_time.tv_nsec = usage * 10 * 1000 * 1000; // 使用率对应的纳秒数
    idle_time.tv_sec = 0;
    idle_time.tv_nsec = (100 - usage) * 10 * 1000 * 1000; // 空闲时间对应的纳秒数

    while (running) {
        // 模拟忙碌
        clock_nanosleep(CLOCK_MONOTONIC, 0, &busy_time, NULL);
        // 模拟空闲
        clock_nanosleep(CLOCK_MONOTONIC, 0, &idle_time, NULL);
    }

    return NULL;
}

Claude:
试图通过一个循环for (long long i = 0; i < 10000000L * cpu_load_percentage; i++)来消耗CPU,确实这可以消耗,但是,它完全控制不了运行时间,因为各CPU性能不一样。这是大学第一学期C语言课就会知道的常识。

void *busy_work(void *arg) {
    while (should_run) {
        // Busy wait
        for (long long i = 0; i < 10000000L * cpu_load_percentage; i++) {
            __asm__ volatile ("nop");
        }
        // Sleep to control total CPU usage
        usleep(10000 * (1.0 - cpu_load_percentage));
    }
    return NULL;
}

LLAMA:
错误与Claude一样,更扯的是,它居然想只*1000而已,太低估CPU的计算能力了。

void* cpu_idle(void* arg) {
    int cpu_usage = *(int*)arg;
    int sleep_time = 100 - cpu_usage;

    while (1) {
        // 占用 CPU 资源
        for (int i = 0; i < cpu_usage * 1000; i++) {
            volatile int x = i * i;
        }

        // 休眠
        usleep(sleep_time * 1000);
    }

    return NULL;
}

DeepSeek:
今天的测试胜利者,完全出乎我的预料。
四个AI中,它是唯一正确编码的。

void* cpu_busy_loop(void* arg) {
    struct timespec start, now;
    long elapsed_ns;
    long sleep_ns;
    long busy_ns;

    // 计算每个周期中忙碌和睡眠的时间
    busy_ns = (target_cpu_usage * NS_PER_SEC) / 100;
    sleep_ns = NS_PER_SEC - busy_ns;

    while (running) {
        clock_gettime(CLOCK_MONOTONIC, &start);

        // 忙碌循环
        while (1) {
            clock_gettime(CLOCK_MONOTONIC, &now);
            elapsed_ns = (now.tv_sec - start.tv_sec) * NS_PER_SEC + (now.tv_nsec - start.tv_nsec);
            if (elapsed_ns >= busy_ns) {
                break;
            }
        }

        // 睡眠
        struct timespec sleep_time;
        sleep_time.tv_sec = sleep_ns / NS_PER_SEC;
        sleep_time.tv_nsec = sleep_ns % NS_PER_SEC;
        nanosleep(&sleep_time, NULL);
    }

    return NULL;
}