【前端面试指南】之anki卡片分享

卡片数据来源 前端面试指南-基础篇

资源地址

目前是有365张卡片

anki卡片合集,需要解压拿到colpkg文件导入 (380.1 KB)

直链导入也可以

https://alist.kong.vision/d/r2/public/anki/fe-base.colpkg

内容展示

桌面端

移动端(ios)

说明

卡片内容比较碎片化,适合利用空闲时间补充一些小的知识点,尽量带上自己的思考去看这些卡片,成体系的学习更重要

后记

国庆在家闲着,写着玩的玩具代码,之前刷前端面经的时候会用 anki卡片记一些知识点,于是有了以下内容:

数据源

采集方式

  • nodejs + pupeteer + 瞎写的规则 = 一份json数据

采集规则还有很大问题,不能覆盖所有情况,并且如果有些知识点的内容有图片,由于没有做特殊处理,在卡片里面也无法展示,抱歉了哈哈哈

制作anki卡片

ankiConnect插件 提供一系列本地接口管理anki

nodejs创建卡片
async function createNotes(deckName: string, subSections: NoteOriginal[]): Promise<void> {
    const notes = subSections.map(item => ({
        "deckName": deckName,
        "modelName": "Basic",
        "fields": {
            "Front": item.title,
            "Back": item.content,
        },
        "tags": item.tags,
        "options": {
            "allowDuplicate": false,
            "duplicateScope": "deck",
            "duplicateScopeOptions": {
                "deckName": deckName,
                "checkChildren": false,
                "checkAllModels": false
            }
        }
    }));

    await invoke("addNotes", 6, { notes });
}

export async function createDecks(): Promise<void> {
    for (const item of DeckData) {
        const deck = { deck: item.title };
        await invoke('createDeck', 6, deck);

        if (item.subSections && item.subSections.length > 0) {
            await createNotes(item.title, item.subSections);
        }
    }
}

通过AI给每条数据打标签

使用gpt-4o + 简易prompt + nodejs + langChain给每条卡片数据分析总结后都打上了4个tag,缺乏一致性哈哈哈,但是省时省力,正好看了看js/langChain的文档简单的尝试了一下

其中某条

langChain代码
const model = new ChatOpenAI({
    model: "gpt-4o",
    apiKey: process.env.OPENAI_API_KEY,
    timeout: 10000
}, {
    baseURL: process.env.OPENAI_API_BASE_URL, 
});

const parser = new JsonOutputParser();

const promptTemplate = ChatPromptTemplate.fromMessages([
    ["system", "分析文本内容, 总结出4个合适技术类型的label,使用数组输出,要求尽量短,最好是一个单词,使用英语:"],
    ["user", "{text}"],
]);


const llmChain = promptTemplate.pipe(model).pipe(parser);

完~

13 Likes

感谢分享,不过没学前端用不上

1 Like

非常感谢分享

感谢你的分享 。

感谢大佬分享