它是一个 Flask 应用程序,用于从个人知识库中阅读和搜索笔记。在这里,知识库是指带有 Markdown 单元的 Jupyter 笔记本的集合,这些单元可能带有标签,并且可能包含彼此的链接。因此,该方法类似于 Zettelkasten。
搜索系统的特点包括:
该存储库可以作为一个整体(带有我编写的注释)使用,也可以作为一个为您的注释提供接口的 Python 包使用。
这个项目最有价值的部分不是软件。这是笔记本身。在编写它们时,我尝试以一种允许有效理解且尽可能少含糊不清的方式解释复杂的事物。我主要写关于机器学习的文章,但新的主题也会随之而来。唉,有一个潜在的破坏因素——到目前为止,这些票据只有俄语版本。如果它不适合您,请转到下一部分。
首先,您需要将存储库克隆到本地计算机并安装readingbricks
软件包。这可以通过从终端运行以下命令来完成:
cd /your/path/
git clone https://github.com/Nikolay-Lysenko/readingbricks
cd readingbricks
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -e .
每次您想要启动 Flask 应用程序时,请运行以下命令:
cd /your/path/readingbricks
source venv/bin/activate
python -m readingbricks
最后一个命令启动本地服务器。准备就绪后,打开网络浏览器并转到127.0.0.1:5000
。有关更多详细信息,请参阅界面指南。
为了使您自己的知识库与应用程序兼容,它必须表示如下:
notes_directory
├── field_one
│ ├── notebook_one.ipynb
│ ├── ...
│ └── notebook_n.ipynb
├── ...
└── field_k
├── notebook_one.ipynb
├── ...
└── notebook_m.ipynb
在这里,字段代表独立的领域(例如,机器学习、化学、音乐理论等)。在特定领域内,Jupyter 笔记本之间的笔记分布可以是任意的。例如,您可以将所有笔记简单地保存在一个笔记本中。
笔记本的所有单元格必须是以## {title}
开头的 Markdown 单元格。要标记注释,请使用“视图 -> 单元格工具栏 -> 标签”激活标记功能。要添加从一个注释到另一注释的链接,可以使用特殊模式__root_url__/{field}/notes/{note_title}
和__home_url__/notes/{note_title}
。虽然后者不太详细,但只有前者支持跨域链接。
到目前为止,一切都很好。知识库已准备就绪,但必须配置应用程序才能使用它。在某个位置创建一个 JSON 文件,如下所示:
{
"LANGUAGE" : " en " ,
"FIELDS" : [ " field_one " , " field_two " ],
"FIELD_TO_ALIAS" : { "field_one" : " Field #1 " , "field_two" : " Field #2 " },
"FIELD_TO_SEARCH_PROMPT" : { "field_one" : " the_most_popular_tag " , "field_two" : " the_most_popular_tag " },
"NOTES_DIR" : " /absolute/path/to/notes_directory " ,
"RESOURCES_DIR" : " /any/directory/for/storing/internal/files "
}
现在,让我们安装 Python 包:
source /your/path/venv/bin/activate
pip install readingbricks
剩下的就是启动应用程序:
python -m readingbricks -c /absolute/path/to/config.json
与上一节一样,转到127.0.0.1:5000
。
Web 界面非常不言自明。
唯一重要的控制元素是位于字段主页上的搜索栏。它可以以三种模式运行:
transformers in recommender systems
);tags:
是必需的(例如tags: transformers AND recommender_systems
);tags:
形成自然语言查询,其后的符号形成标签表达式(例如, transformers tags: recommender_systems
)。如果查询的至少一部分是自然语言,则结果按 TF-IDF 排序。否则,结果的顺序取决于笔记本在字段目录中的词典位置以及笔记本内单元的位置。
享受阅读的乐趣!