有审查吗?
一直有人说,deepseek的本地版本是不存在审查的。
我试了一下,呵呵,真的太天真了。不知道鼓吹这个的是傻还是坏? 我倾向是后者。
从截图可以看到,deepseek对政治和色情都进行了自我审查,同时,对政治具有更高的否定优先级。
- 仅仅测试红线,不代表本人的政治观点
一直有人说,deepseek的本地版本是不存在审查的。
我试了一下,呵呵,真的太天真了。不知道鼓吹这个的是傻还是坏? 我倾向是后者。
从截图可以看到,deepseek对政治和色情都进行了自我审查,同时,对政治具有更高的否定优先级。
这几天不知道谁无聊,拿我这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说这是广告。。。如果错了,还请你见谅。");
}
搞定。
前几天我还在夸他家好用,结果闹了半天是这么回事。。。
当然,大家又可以欢呼,在蒸馏上我们遥遥领先了。 这可不是乱说,抖阴和头条上这是主旋律。
甲骨文免费机要求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;
}
早上起来没事,让ai写了一个telegram的ai机器人,我的主要诉求其实是要一个简单的封装的包来调用ai。不知道gayhub上有没有类似的,但自己调教的肯定是最符合自己习惯的。github上的开源项目往往都是太大而复杂了。
现在的封装是这样的,我觉得蛮好的,简单直观。
systemPrompts := []string{
"现在假定你是一个电脑专家,你在回答用户问题。",
"除了套话和一般性对话外,你不要回答任何其它专业的问题"
}
aiClient := ai.NewAIClient( //兼容openai,deepseek等。
"https://api.groq.com/openai/v1/chat/completions", // API 地址
"123456", // API 密钥
"llama-3.3-70b-versatile", // 模型名称
4096, // 最大 Token 数量
systemPrompts, // 系统提示
)
response, err := aiClient.AskAI(chatSession, update.Message.Text) //输入一段文字得到ai回应