
简介这是一个收录常用AI工具与学术资源网址的轻量级源码包面向需要高频访问AI平台、学术搜索引擎及专利查询网站的开发者和研究人员也适合刚开始接触人工智能领域的新手作为入门导航。资源以单个HTML文件为核心导航页面辅以inscode与gitignore文件用于项目配置管理整体仅5KB共计3个文件打开即用也可按需增删条目。目前已有196人学习页面涵盖腾讯IMA、Kimi.ai、Deepseek、智谱清言、秘塔、豆包、通义千问、Elicit、腾讯元宝等AI工具以及必应、知乎AI专栏、百度学术、谷歌学术镜像、专知、arXiv、HimmPat、Patentics、Web of Science、Global Dossier等学术入口。对于想建立个人AI学术工具箱的读者这份源码提供清晰可扩展的页面结构既可用作日常速查导航也能基于其二次开发快速搭建自己的网址聚合页同时简洁的HTML实现也有助于前端初学者理解静态网页的编写与组织方式。1. 常用AI及学术网址导航源码它不是收藏夹是一套能跑起来的索引系统做AI相关开发的同学手边至少堆着几十个站点模型卡、论文预印本、数据集、API文档、开源仓库收藏夹里越存越乱真到用的时候要么找不到要么链接早失效。这份“常用AI及学术网址”项目源码就是把这堆散装收藏变成一套可以直接部署的导航网站。页面是现成的网址数据独立存在结构化文件里想加站点、删分类、调排序改完数据文件刷新就能生效不用动一行页面代码。特别适合需要维护团队内部AI资源索引、或者想给自己搭一个可持续更新导航页的开发者拿到源码就能本地跑起来。2. 分类体系是怎么设计的七个以内的分类加上标签和搜索2.1 导航的底层逻辑分类、标签与搜索怎么分工浏览器收藏夹最大的问题不是存不下而是“只有一层目录结构”。存三五十个网址的时候还能靠记忆硬找到一百个以上就彻底失控了。导航网站要解决的从来不是“能不能存”而是“能不能在一两秒内找到”。这个源码里用的是三层检索机制第一层是克制的一级分类控制在七个以内保证首页导航不是一长串吓人的链接墙第二层是标签用来补充分类说不清楚的属性比如“Transformer”“部署”“多模态”第三层是搜索把站点名称、描述、标签全部拉进索引输入关键词直接过滤。我自己维护导航的习惯是分类只做“入口级筛选”真正能区分网址差异的是标签和搜索。分类是给人浏览用的搜索是给人找东西用的标签则是给搜索提供素材的。三者各管一段缺一个就会变成“还是得靠人肉翻列表”。2.2 核心分类AI模型、学术检索、数据集与工程工具这套源码默认的分类结构基本覆盖了AI开发和学术研究的完整链路。我按常见做法整理成下面这张表拿到源码后你可以对照着看自己的数据文件是否一致一级分类收录对象典型站点类型维护口径AI模型与API模型卡、在线试用、API控制台Hugging Face Models、各厂商大模型平台、模型推理服务优先收官方域名API文档和模型页分开记学术检索与论文论文预印本、期刊检索、会议论文arXiv、OpenReview、Google Scholar、DBLP、期刊官网会议类站点按届次更新收录主站而非临时链接数据集与评测数据集搜索、竞赛平台、榜单Kaggle、Papers with Code、数据集托管平台已下线或被合并的数据集及时标记开源代码与工具代码托管、包管理、开发者问答GitHub、GitLab、PyPI、Stack Overflow只收长期维护的站点排除一次性工具工程与部署容器镜像、云平台文档、编排手册Docker Hub、云厂商文档、K8s文档、模型部署工具以官方文档入口为主教程类要看到更新时间学习与社区官方课程、技术博客、交流社区大模型基础理论课程、公开课、AI技术社区博客收录RSS或专栏首页不收录单篇文章这套分类有一点值得借鉴——它把“数据集与评测”单独拆出来而不是塞进“学术”里。因为做模型评估的人和查论文的人诉求不一样前者要找的是测试集和榜单后者找的是研究进展混在一起两边都难受。2.3 五条选型标准什么样的网址值得收进导航分类解决的是“往哪放”还有一个更前置的问题什么样的网址才值得放进来。源码里附带的数据文件能做到这么干净靠的是下面这五条标准这也是我在实际维护中一直在用的第一官方来源优先。能用官网域名的绝不用第三方转载第三方站点今天还在明天可能就生态位没了。第二活跃度。一个站点如果超过一年没有明显更新收录价值就很低。对我来说挂掉的学术网址是最浪费时间的查资料查到一半死在链接失效上。第三长期稳定性。个人博客、临时分享链接这类东西尽量不碰除非内容确实优质到值得冒风险。第四检索价值。这个站点能否提供别的站点替代不了的资源如果功能完全重复只保留最稳定的那个避免导航站变成收藏夹的二次堆积。第五唯一性。同类站点要敢于做减法。比如代码托管有GitHub就够了不需要再收三四个同质化平台占位置。这一条是控制导航规模的命门七分类每个分类下最多十个左右整个站保持在六十到八十个网址才谈得上“导航”不然又变成一个收藏夹。2.4 数据藏在JSON里把网址和页面解耦这套源码做了一件很关键的事网址数据不在页面代码里而是独立存成JSON文件前端通过循环去渲染。这个设计让“改网址”变成纯粹的改数据完全不需要懂前端框架。我对这样的结构是很认同的。团队协作时不太懂代码的同事也能维护网址库只要不动数据结构就不会把页面搞挂。交接也容易新人拿到JSON文件就能看懂全部站点资源甚至可以直接用脚本做批量更新。3. 本地跑起来再看效果环境、启动命令与数据文件改动3.1 先看目录结构和包管理器再敲启动命令拿到源码包的第一步不是急着安装而是先翻目录。常见做法是先确认项目里有没有package.json有就走npm的流程。我一般会这样操作# 进入项目根目录先看一眼目录结构 ls -la # 有 package.json 就走标准 npm 流程 npm install # 启动本地开发服务 npm run dev第一行ls是确认项目里到底有什么第二行安装依赖第三行启动开发模式。这里有几个值得注意的参数npm install之后如果报权限错误常见做法是清理node_modules再重新安装而不是用sudo硬装npm run dev启动后控制台会输出本地访问地址一般是localhost加一个端口号直接用浏览器打开就能看到导航页面。如果你拿到的是纯静态版本没有package.json那就更简单起一个静态文件服务就行。Python环境可以直接用python3 -m http.serverNode环境用npx serve本质都是把目录当作站点根目录跑起来。判断依据很简单有package.json看源码包依赖没有就当静态页处理。3.2 网址数据文件改JSON就能换一批站点这个项目的核心数据文件通常是JSON格式里面按分类组织所有网址。数据结构大致长这样{ categories: [ { id: ai-models, name: AI模型与API, weight: 1 }, { id: papers, name: 学术检索与论文, weight: 2 } ], sites: [ { id: hf-models, name: Hugging Face Models, url: https://huggingface.co/models, description: 模型卡、模型库与推理试用, category: ai-models, tags: [模型, Transformer, 多模态], recommended: true }, { id: arxiv, name: arXiv, url: https://arxiv.org, description: 论文预印本平台AI相关研究首发阵地, category: papers, tags: [论文, 预印本], recommended: true } ] }字段含义如下表字段作用修改说明id站点唯一标识保持唯一删除站点时一并清理引用name导航显示名称尽量用官方名称便于辨认url跳转地址确认是长期稳定的官方域名description一句话描述写得具体一些搜索命中全靠它category所属分类ID必须匹配categories中的idtags搜索标签把同义词和多模态、部署这类属性都塞进来recommended是否推荐位推荐位通常排在分类内靠前位置改这个文件不需要动任何页面逻辑。加一个站点就照着一个已有条目复制粘贴改字段值删站点就直接删掉对应对象注意别把JSON的逗号删出问题。改完保存浏览器刷新就能看到变化这个即时反馈是这套源码最适合入门的地方。3.3 搜索与分类的参数调整从配置到逻辑导航页面上的搜索框不是摆设它的过滤逻辑一般在独立的JS文件里。大部分同类项目用的是类似下面的实现只是字段和大小写处理略有差别function filterSites(sites, keyword, activeCategory) { const kw keyword.trim().toLowerCase(); return sites.filter(function (site) { const inCategory !activeCategory || site.category activeCategory; if (!inCategory) { return false; } if (!kw) { return true; } const searchableText [ site.name, site.description, site.tags.join( ) ].join( ).toLowerCase(); return searchableText.includes(kw); }); }这段逻辑的核心是三个参数配合sites是数据文件里的全部站点数组keyword是搜索框输入的文本activeCategory是当前激活的分类筛选。代码做的事情很直白——先过滤分类再过滤关键词。需要注意的调整点是searchableText的组成。如果站点的标签写得不够全搜索命中率会很难看。我在实际使用中会把tags多塞几个同义词比如“LLM”和“大模型”都放进去因为不同人习惯用不同的叫法。想连URL一起搜就把site.url也拼进searchableText。还有一个常见误用是忘记toLowerCase导致中文输入没事、英文大写就搜不到这个坑后面的避坑章节会细说。4. 从本地到公网构建、Nginx托管与更新回路4.1 构建静态文件Nginx一个站点配置搞定本地跑起来只是第一步这导航要真正当工具用得让它能在外网访问。这个项目构建出来是纯静态文件托管方式很多我常用的是Nginx。# 先执行构建产物一般输出到 dist/ 目录 npm run build构建完成后dist目录里就是完整的静态站点。接下来在Nginx里加一个server块server { listen 80; server_name nav.example.com; root /var/www/ai-nav; index index.html; # 静态资源带缓存 location ~* \.(js|css|png|jpg|svg|woff2)$ { expires 7d; add_header Cache-Control public; } # 找不到文件回退到首页配合前端路由用 location / { try_files $uri $uri/ /index.html; } }这里最关键的是try_files那一行。如果导航站用了前端路由用户访问某个深层路径时服务器没有对应文件必须回退到index.html否则刷新一下就是404。很多初学者在本地跑得好好的一部署到服务器就各种白屏八成就是漏了这一行。4.2 更新回路本地修改、构建验证、发布上线导航站的内容会持续更新每次改完数据不可能都手动拖文件到服务器。我习惯写一个简单的发布脚本把更新流程固化成三步#!/bin/bash set -e echo [1/3] 构建静态文件... npm run build echo [2/3] 备份线上版本... ssh useryour-server cp -r /var/www/ai-nav /var/www/ai-nav-backup echo [3/3] 同步到服务器... rsync -avz --delete dist/ useryour-server:/var/www/ai-nav echo 发布完成这个脚本里的set -e表示任何一步出错就停止避免把损坏的产物同步上去。备份线上版本是给自己留后悔药改坏了可以快速回滚。rsync用--delete参数是为了让线上目录和本地dist严格一致被删掉的站点才不会残留在线上。发布流程里还有一个容易被忽略的动作构建和验证要分开。构建成功不代表页面正常我在CI上或者在本地都会加一步验证用curl检查构建产物的首页是否返回200# 本地起个临时静态服务验证产物可访问 cd dist python3 -m http.server 8080 # 请求首页看状态码 curl -I http://localhost:8080如果curl返回200再执行同步操作。这一步能拦截大部分“数据删挂导致白屏”的翻车现场。4.3 域名与证书对外访问的最后一公里导航站既然要作为长期工具建议在域名上一次性配置好HTTPS。HTTP的导航站有几个实际问题地址栏不会显示安全标识、部分浏览器对不加密页面有限制、搜索引擎的收录权重也更低。我现在的习惯是域名解析做好之后直接配置自动续期的证书。Nginx的配置变为监听443端口把80端口的请求重定向到HTTPSserver { listen 80; server_name nav.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name nav.example.com; ssl_certificate /etc/letsencrypt/live/nav.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/nav.example.com/privkey.pem; root /var/www/ai-nav; index index.html; location / { try_files $uri $uri/ /index.html; } }证书续期那一步千万别手动盯着设一个cron任务每个月跑一次续签命令再把nginx重载一下就行。只要域名没换、解析没断这个导航站的HTTPS是长期自动维系的这也是“能长期用”和“折腾完就不管了”的分水岭。5. 维护避坑记录链接失效、白屏与搜索失效的五类问题5.1 链接失效返回404先看返回码再动手改现象点导航里的某个站点浏览器出来404页面。或者站点直接显示连接失败。原因学术站点和技术工具站的链接失效原因比较集中——项目被合并吸收、组织改名域名迁移、个人项目停维护、站点改版换了URL路径。导航数据跟着老域名走自然全挂。解决我遇到这类问题会先区分“404”和“连接失败”。404说明域名还在、站点还活着只是路径变了去官网首页找到新路径更新url字段就行连接失败说明域名本身不可达那就要去搜这个站点是否换了新域名找到了就全套更新找不到就删掉这一条。导航里如果失效链接长期不清理整站的可信度会迅速崩掉维护周期再长也不如一次彻底清理。5.2 白屏翻车JSON语法错误最常见现象改完数据文件保存浏览器刷新后整个页面变成白屏控制台报错。原因JSON格式对语法极其严格。多一个逗号、少一个引号、中文字符串没闭合都会导致整个文件无法被解析。这个项目把网址数据放在JSON里JSON解析失败前端拿不到任何数据页面自然就白屏了。解决编辑完JSON一定不能直接刷新先做一次校验。Linux和macOS上用node -e JSON.parse(require(fs).readFileSync(data.json,utf8))检查或者直接把文件内容粘贴到JSON校验网站上几秒钟就能看到是哪一行出问题。养成“改数据必校验”的习惯之后这个问题的翻车概率几乎降为零。5.3 分类越来越乱问题出在“收录口径”现象用了一段时间后发现同一站点出现在多个分类里比如某个模型库既在“AI模型”又在“数据集”搜索时明明两个分类都能搜到但用户反而不知道以哪个为准。原因没有定义分类归属的边界条件。收录的时候全凭直觉同一个站点在不同时间被不同同学加到了不同分类里又没有规律可循。解决我给这类导航项目定过一条规则——按“用户的主诉求”分类不按“站点的功能”分类。一个模型库如果用户打开它是为了查模型卡片就归入“AI模型与API”如果它同时提供评测数据集那也不重复收录而是把数据集的说明写进描述里。每个站点只在一个分类下出现搜索靠标签覆盖它的其他属性这样首页导航就永远保持清爽。5.4 中文搜索不到大小写、编码与字段覆盖现象搜索框输入英文能搜到站点输入中文就返回空结果或者明明描述里包含关键词却搜不出来。原因搜索逻辑里把大小写统一做了但中文不涉及大小写问题通常出在两个地方——一是搜索没有覆盖description字段二是JSON里的中文引号或编码格式有问题。还有一种情况是站点描述写得太简短关键词压根没写进去。解决查看搜索逻辑是否把name、description、tags三个字段都拼接进了匹配文本。如果只匹配name那几乎等于没有搜索功能描述才是信息量最密集的字段。另外建议手动调一次用中文搜索确认内容包含关键词且文件编码是UTF-8。最后把tags里多放同义词比如“大模型”“LLM”“Foundation Model”都放进去搜索命中率会显著提升。5.5 刷新页面就404路由模式与服务器回退现象本地开发一切正常部署到Nginx之后从首页点进某个分类页也没问题但直接刷新这个分类页链接就报404。原因这套导航前端用了路由浏览器地址栏里的路径在服务器上并不对应真实的HTML文件。本地开发服务器会自动回退到首页但Nginx默认不会找不到文件就直接404。解决在Nginx配置里的location /加上try_files $uri $uri/ /index.html;把所有不存在的路径都回退到index.html由前端路由接管。这个问题我提过一两次就不再重复踩了部署任何带前端路由的静态站第一件事就是检查这一行有没有写上。6. 让导航变成长期资产一个月一次的“导航体检”习惯导航站维护最大的敌人不是技术难度而是惰性。网址这个东西会一点点腐烂今天的可用链接三个月后可能就变成了404。我有一套简单但有效的维护流程坚持下来导航永远不会变成死站。每个月我会抽出十分钟做一次“导航体检”。具体做法是写一个小脚本把数据文件里的所有URL批量做HEAD请求把返回码记录下来#!/bin/bash cat data.json | jq -r .sites[].url | while read url; do code$(curl -o /dev/null -s -w %{http_code} -I $url) echo $code $url done这个脚本用jq提取所有站点URL然后逐个发起HEAD请求输出状态码和URL。200和301都是正常的404和503就要重点排查。跑完把输出保存成表格存档和上个月的对比一眼就能看出哪个站点是新挂的。我还给每条导航数据定了一个“收录模板”新站点入库时强制填写站点官方名称、官方域名、一句话功能描述、所属分类、三到五个标签、收录日期。凡是描述写不出来的站点不进导航凡是域名不是官方域名的站点不进导航凡是自己都不确定下次还会不会用的站点不进导航。这三条过滤下来大部分噪音都被挡在了导航外。举个例子大模型相关的AI Agent工具和应用现在层出不穷这个分类下尤其容易混进不少短期项目。我遇到过一个AI Agent编排工具试用版做得很唬人收录进去才两个多月就宣布停止维护。现在任何AI Agent相关的导航收录我都要求看到官方文档站和仓库的更新时间起码还在活跃的才会进列表。这套流程说白了就是先用选型标准挡住低质量站点再用批量检测发现失效链接最后用收录模板保证后续维护的人知道每个站点为什么在这里。从那以后我每次改导航数据都强制走一遍“校验JSON、本地构建、curl验证、同步线上”的流程四步做完才敢说这块更新完了这套习惯帮我躲过的白屏和404已经数不清了。希望帮到你。本文还有配套的精品资源点击获取