Normal view

There are new articles available, click to refresh the page.
Today — 17 May 2025Curiosity

TG 无法登录,能否补救?

17 May 2025 at 11:58
wangxiaoer:

先说下背景,苹果手机,大概几年前买了个外区账号(具体哪个区不记得了),装了 TG 以及火箭等应用,没有退出过,但是期间很少用,唯一加入的就是一个 Alist 群组。TG 绑定了国内手机号。PC 端也是很早装过客户端,但是用的很少。

今天想加入一个 emby 群组的时候提示密码是否还记得,手贱去试了试,结果不记得了,然后就提示要 7 天后重置。茶尝试 PC 端登录也不行。这个时候手机端还是登录状态,还能正常使用。结果在某个群组里面查看消息提示版本不支持,于是考虑更新。

切换到美区 ID 登录,点击更新的时候提示 APP 已经下架,搜索得知,可能是之前下载的那个区把 TG 下架了,当时没多想,直接把手机上的 TG 卸载了。然后重新下载,很顺利就装上了。

启动后直接进入输入手机号的界面,输入之前的手机号,然后又要求输入邮箱和邮箱验证码,通过后要输入手机短信验证码,但是始终收不到。

如果还想使用之前的账号,这种情况还有办法登录吗?

咱 web 端也能跑本地知识库,RAG(傲娇)-篇章 2-数据预处理与匹配结果优化

17 May 2025 at 11:56
doujiangjiyaozha:

众所周知,RAG 最基本的流程是:

数据处理 → 向量化 → 存储 → 匹配文本 → 结果优化 → 最终的匹配结果

其中,数据预处理与匹配结果优化尤为重要。

1. 数据预处理:文本分块( Chunking )

在处理一篇长篇幅的文章时,通常需要将整个文本切分为多个小块,每个小块分别向量化后再存储。

拆分块的重要性

如果分块方式不合理,可能会导致无法命中真正相关的内容。因此,合理的分块策略至关重要。

如何拆分?

看这里:

👉 Text Splitters Overview - LangChain

  • 文章类型数据:推荐使用 Text-structured
  • HTML 等结构化标签类型:推荐使用 Document-structured

2. 弥补 RAG 匹配缺陷:大小块 + 关键词索引

即使文本被拆成多个块,匹配结果依旧可能不准确。因为 RAG 本身存在局限性:若问题与任何文本块都不相关,匹配效果自然不佳。

优化方案:参考 Danswer 架构

简单来说,就是将文本拆分成不同大小的块再配上关键词索引

  • 大块文本:提高语义层面的相关性
  • 小块文本 + 关键词索引:提高细节命中率

小块可以提供更多细节,但也可能带来噪音信息。


3. 匹配结果优化

多维度匹配后可能得到大量候选文本,因此需要做进一步排序:

  1. 基于向量匹配与关键词匹配的分数加权排序
  2. 使用轻量级的 rerank 模型
  3. 最终形成一组合理的匹配文本

4. Web 端落地(纯浏览器端)

文本块处理

import { RecursiveCharacterTextSplitter } from "@langchain/textsplitters"

const getBaseTextRecursiveSplitter = () => {
    const bigSplitter = new RecursiveCharacterTextSplitter({
        chunkSize: SPLITTER_BIG_CHUNK_SIZE,
        chunkOverlap: SPLITTER_BIG_CHUNK_OVERLAP,
        separators: SPLITTER_SEPARATORS
    });

    const miniSplitter = new RecursiveCharacterTextSplitter({
        chunkSize: SPLITTER_MINI_CHUNK_SIZE,
        chunkOverlap: SPLITTER_MINI_CHUNK_OVERLAP,
        separators: SPLITTER_SEPARATORS
    });

    return {
        bigSplitter,
        miniSplitter
    }
}

推荐参数配置

// split chunk relate
export const SPLITTER_BIG_CHUNK_SIZE = 1000; // 大块字符数
export const SPLITTER_BIG_CHUNK_OVERLAP = 200; // 大块重叠字符数
export const SPLITTER_MINI_CHUNK_SIZE = 150; // 小块字符数
export const SPLITTER_MINI_CHUNK_OVERLAP = 30; // 小块重叠字符数
export const SPLITTER_SEPARATORS = ["\n\n", "\n", "。", ";", ",", " ", ""]


关键词索引

使用 lunr.js + jieba(处理中文更优)


匹配结果的优化

考虑到运行在客户端的性能问题没使用 rerank 模型,仅通过加权与归一化排序处理并优化了一点打分逻辑

参考代码如下:

let [lshRes, fullIndexResFromDB] = await Promise.all([
    searchLshIndex(),
    searchFullTextIndex(),
]) as [Search.LshItemRes[], lunr.Index.Result[]]

// 向量匹配排序
const sortedLshRes = lshRes.sort((a, b) => b.similarity - a.similarity)
                           .slice(0, config.SEARCH_RESULT_HEADER_SLICE_SIZE)

// 全文匹配排序
const sortedFullIndexResFromDB = fullIndexResFromDB.sort((a, b) => b.score - a.score)
                                                   .slice(0, config.SEARCH_RESULT_HEADER_SLICE_SIZE)

// 重新打分、归一化
await FullTextIndex.loadJieBa()
const fullIndexFromDBTextChunkRes = await store.getBatch({
    storeName: constant.TEXT_CHUNK_STORE_NAME,
    keys: sortedFullIndexResFromDB.map((item) => Number(item.ref))
})

FullTextIndex.add([{ field: 'text' }], fullIndexFromDBTextChunkRes.map(item => ({
    id: item.id,
    text: item.text
})))

let newFullIndexRes = FullTextIndex.search(question)
newFullIndexRes = newFullIndexRes.sort((a, b) => b.score - a.score)
const maxScore = newFullIndexRes[0]?.score || 1
const reRankFullIndexRes = newFullIndexRes.map(item => ({
    ...item,
    score: item.score / maxScore
}))

// 合并向量和关键词匹配结果
let mixIndexSearchedRes: { id: number, score: number }[] = []
const vectorWeight = config.SEARCHED_VECTOR_WEIGHT
const fullTextWeight = config.SEARCHED_FULL_TEXT_WEIGHT

sortedLshRes.forEach(lshItem => {
    const match = reRankFullIndexRes.find(item => Number(item.ref) === lshItem.id)
    if (match) {
        mixIndexSearchedRes.push({
            id: lshItem.id,
            score: lshItem.similarity * vectorWeight + match.score * fullTextWeight
        })
    } else {
        mixIndexSearchedRes.push({
            id: lshItem.id,
            score: lshItem.similarity
        })
    }
})

// 补充关键词匹配的尾部数据
const lshTailStartIndex = Math.floor(vectorWeight * sortedLshRes.length)
const lshTailMaxScore = sortedLshRes.slice(lshTailStartIndex)?.[0]?.similarity || 1

reRankFullIndexRes.forEach(item => {
    if (!mixIndexSearchedRes.find(i => i.id === Number(item.ref))) {
        mixIndexSearchedRes.push({
            id: Number(item.ref),
            score: item.score * lshTailMaxScore
        })
    }
})

mixIndexSearchedRes = mixIndexSearchedRes
    .sort((a, b) => b.score - a.score)
    .filter(item => item.score > config.SEARCH_SCORE_THRESHOLD)

啥,你觉得这一套不靠谱,看下面!!!

成果

代码已开源(有帮助的话来个 star 吧)

github.com/Yoan98/Ncurator

想看实际演示?这里

www.ncurator.com

有啥能证明这个玩意靠谱呢?这里

1.上了阮一峰的周刊 科技爱好者周刊(第 337 期):互联网创业几乎没了

2.上了 DeepSeek 的集成推荐 https://github.com/deepseek-ai/awesome-deepseek-integration

你觉得小米玄戒 O1 能成吗?为什么?

By: initcom
17 May 2025 at 11:35
initcom:

你觉得小米玄戒 O1 能成吗?为什么?

雷军突然宣布,小米自研的手机 SoC 芯片命名为“玄戒 O1”,并计划于 5 月下旬正式发布。这一消息令业界震惊,同时标志着小米在芯片研发领域的重要突破。

回顾小米的造芯历程,雷军表示:“小米十年造芯路,始于 2014 年 9 月。超长周期、超大投入和无限的勇气,终于迎来了这一时刻。”事实上,小米在自研芯片的道路上已经走过了不少波折。

image.png

HC550 报错 UDMA CRC error count =1

By: igfw
17 May 2025 at 10:46
igfw: 请 V 友们给小白,给鉴别一下:

新近入手了一块二手 HC550 16T 。昨天插到 unraid 里面报错 UDMA CRC error count =1 ,目前只有这一处报错。

发现这个问题后,我在 unraid 上面执行 SMART 简短自建,提示没问题。

后关机更换硬盘盘位( 2 号>>>3 号),该硬盘仍然报这个错误提示。原本 2 号盘位插入另一块 hc550 正常。

由此是否可排除,sata 线或硬盘背板故障,从而问题锁定到此块硬盘上呢?

现在正在 unraid 上面执行扩展自检,进度 50%。

后续如果这个报错类型不增加,扫描完也没坏道,是不是就可以放心使用了呀。

https://s2.loli.net/2025/05/17/CAHyzlds1jXOtZJ.png

做了一个新玩具,在线 ffmpeg

17 May 2025 at 10:33
xiaoming1992:

支持命令:
$ echo
$ cd
$ clear
$ cp: 支持 -r 递归复制
$ pwd
$ cat
$ mkdir: 支持 -r 递归创建
$ mv
$ touch
$ rm: 支持 -r 递归删除
$ ls
$ vi/vim/edit: 编辑文件
$ help

$ download: 文件下载
$ upload: 加载文件到终端当前目录
$ ffmpeg: gif / 视频 处理

命令行预览

ffmpeg 在线合成 gif.gif

体验地址 https://16px.cc/sh/ffmpeg

微软 Trusted Signing 代码签名真不错

By: louisxxx
17 May 2025 at 10:25
louisxxx:

注册到申请几小时就通过了也没打电话 过程中就发了一个邮件验证, 点击里面 URL 进去确认然后就验证通过了(美国公司); 创建证书然后就能直接用 jsign 签名了,可集成到 CI/CD 中, 不需要微软那些 SDK 工具; 实测可过 smartscreen

brew install azure-cli
az login
region=eus
account=Trusted-Signing-account
profile=cert-profile-name
app=Download/app-win-x64-1.0.0-test.exe

jsign \
  --storetype 'TRUSTEDSIGNING' \
  --keystore "${region}.codesigning.azure.net" \
  --alias "${account}/${profile}" \
  --storepass "$(az account get-access-token \
    --resource 'https://codesigning.azure.net' \
    --query 'accessToken' -o tsv)" \
  "$app"

然后就签好了

奇怪了 ,最近 mac 能正常网路连接上「Podcast 」和「news」,但

17 May 2025 at 10:15
morisakitaku:
  • App Store 「无法连接,无法载入页面。请再试一次。」
  • Apple Music 「目前无法更新「云端音乐资料库」。 发生未知的错误( 11556 )。
  • Apple TV 「无法取得内容 载入此内容时发生问题。如果问题持续发生,请检查网际网路连线。 无法互联网)」

嘗試過,

  • 退出 QX ,重啟電腦
  • 更换 Wi-Fi 、
  • 连接手机热点,
  • 更新最新 macOS 系统,

都还是无法正常连结 App Store 、TV 、Music…


請問有什麼解決辦法嗎?

MacBook pro m4pro 续航拉垮

By: MasterCai
17 May 2025 at 10:14
MasterCai:

换机到 m4pro ,能耗模式选自动,亮度自动,只开了一些 chrome 和 vscode 远程以及一些其他没啥负载的程序,70 的电只能用 4h ? 和之前用 M1 mbp 时候的体验差太多了。也已经用了一段时间,大致可以排除 spotlight 重建索引的原因?其他用 m4pro 的朋友们耗电是个什么情况呢?

PinkBackground:一个粉粉的网站

17 May 2025 at 10:11
feixiangba2017: 大老爷们做了个粉嫩嫩的网站,目标用户是想要在各种社交平台(小红书、ins )发图的小女生,欢迎体验: https://pinkbackground.app
功能和亮点:
1 ,上传图片一键换成粉色背景(pink background);
2 ,直接文字生成粉色高清壁纸(pink wallpaper);
3 ,未来将提供更多粉色元素(pink elements)的图片和视频,欢迎收藏并持续关注;
4 ,目前还需要登录使用,打算做成免登录即可免费使用,但还在接入 comfyUI ,敬请期待。

如何评价 B 站户晨风这个直播连麦的博主?

17 May 2025 at 09:16
Kinnikuman:

最近刷 B 站经常给我推送户晨风这个博主,看了几次,有点接地气,但无脑推荐苹果(虽然我大部分产品也是苹果),就有点想笑,甚至有时候一度认为是反串。

另外看过几个和他连麦的,很多都是被批评教育,这些人大部分都是他的粉丝或者了解他连麦风格的吧,为什么还要主动连麦去被一顿教育呢?有点怀疑是请的演员,节目效果拉满。

当然对他了解的不多,大家喜欢这个博主么?

昨晚 618 忍不住买了尼康 Z63+2470f/4s 套机 喵速达 17199 元 算镜头 4000 元合单机 13199 元 我也是有相机的人了

By: Licsber
17 May 2025 at 09:12
Licsber: 接上贴 /t/1132059
京东天猫不讲武德 昨天就开 618

想抢单机 13199 没买到 实在是难抢
算镜头 4000 元的话 这单机也是 13199 元

说不上亏还是赚 但个人是真喜欢 4000cd/m2 的 evf 亮度
还有 4K60P 无裁切的视频性能

复盘一下差点被骗的经历

16 May 2025 at 17:29
feifeichen:

最近辞职了准备找工作,然后这几天就在开始投简历。


中午打游戏的时候突然收到一条短信,说我简历过了,让我留个邮箱。

🤔 当时我还在纳闷,我的简历上明明有邮箱,怎么还来问我?
但我想可能是 HR 粗心,也就没多想,直接发了过去。


💥 后面精彩的来了:

大概过了一个小时,我收到一封邮件,问我在哪个区域。
我以为是公司办公点多,想就近安排面试,就随手回复了。

然后又过了一小时,对方发来一个 .docx 附件,说是“面试邀请函”。

我一看内容,开始觉得不对劲了:

  • 居然问我手机系统?(这跟面试有什么关系?)
  • 附件是个 Word 文件,还用了非常典型的“邀请函”模板格式
  • 文件命名非常常见:邀请函-XXX 公司.docx,一看就很套路

🧠 我立刻警觉起来,把邮件放一边没动。打算等下班扔虚拟机里打开看看有没有宏病毒或者钓鱼脚本。


🎯 总结一下:

  • 正规公司不会重复问你简历上的信息(邮箱/电话)
  • 不会随便发 .docx 附件,要特别提防带宏的文档
  • 不会问些岗位无关的内容
  • 一般 HR 都会通过正规招聘平台或企业邮箱联系你

希望我的经历能给正在找工作的朋友提个醒

86daad715d322f659d7b14f162cd2c1c.jpeg

想开发一款 HTTPS 抓包工具,求大佬们指点!🚀

By: ma46
16 May 2025 at 10:30
ma46:

今天在论坛刷帖,看到有人求推荐好用的 HTTPS 抓包软件,感觉这个需求还挺有意思的!😄我自己最近在规划一个独立开发项目,就想着要不自己搞一款抓包工具试试?

我是 C++ 和 Python 开发背景,比较偏爱底层和技术驱动的项目,所以不太想做纯 Web 的东西。但估摸着这种工具开发难度应该挺大的,耗时也会很久,所以想听听大家的意见,这个想法靠谱吗?🤔(当下无金钱压力,时间也充裕)

欢迎大佬们分享经验、泼冷水或者给点灵感!😎

独立开发要兼顾界面和功能,我平时又多用 mac 开发,所以开发语言上可能会选 Swift
❌
❌