slug: nia
名称: Nia
描述: 使用 Nia AI 对代码仓库、文档、研究论文、HuggingFace 数据集、本地文件夹和软件包进行索引与搜索。功能包括 Oracle 自主研究、依赖分析、上下文共享和代码顾问。
主页: https://trynia.ai
直接访问 Nia API,用于索引和搜索代码仓库、文档、研究论文、HuggingFace 数据集、本地文件夹和软件包。
Nia 提供工具用于索引和搜索外部仓库、研究论文、文档、软件包,并进行 AI 驱动的研究。其主要目标是减少 LLM 的幻觉,并为 AI 智能体提供最新的上下文。
任选其一:
- 运行 npx nia-wizard@latest(引导式设置)
- 或在 trynia.ai 注册以获取密钥
mkdir -p ~/.config/nia
echo "your-api-key-here" > ~/.config/nia/api_key
curljq在使用网页抓取或网页搜索之前,您必须:
1. 首先检查已索引的源:使用 ./scripts/sources.sh list 或 ./scripts/repos.sh list
2. 如果源已存在:使用 search.sh universal、repos.sh grep、sources.sh read 进行针对性查询
3. 如果源不存在但您知道 URL:使用 repos.sh index 或 sources.sh index 进行索引,然后搜索
4. 仅在源未知时:使用 search.sh web 或 search.sh deep 发现 URL,然后进行索引
为何重要:已索引的源比网页抓取提供更准确、更完整的上下文。网页抓取返回的是截断/摘要内容,而 Nia 提供完整的源代码和文档。
repos.sh list / sources.sh list 检查源是否已索引repos.sh tree / sources.sh tree 检查文件树结构search.sh universal、repos.sh grep、repos.sh read 进行针对性搜索EXTRACT_BRANDING=true)。所有脚本都位于 ./scripts/ 目录下,并使用 lib.sh 进行共享的身份验证/curl 辅助功能。基础 URL:https://apigcp.trynia.ai/v2
每个脚本都使用子命令:./scripts/<script>.sh <command> [args...]
运行任何脚本时不带参数,可以查看可用命令和用法。
./scripts/sources.sh index "https://docs.example.com" [limit] # 索引文档
./scripts/sources.sh list [type] # 列出源(documentation|research_paper|huggingface_dataset|local_folder)
./scripts/sources.sh get <source_id> [type] # 获取源详情
./scripts/sources.sh resolve <identifier> [type] # 将名称/URL 解析为 ID
./scripts/sources.sh update <source_id> [display_name] [cat_id] # 更新源
./scripts/sources.sh delete <source_id> [type] # 删除源
./scripts/sources.sh sync <source_id> [type] # 重新同步源
./scripts/sources.sh rename <source_id_or_name> <new_name> # 重命名源
./scripts/sources.sh subscribe <url> [source_type] [ref] # 订阅全局源
./scripts/sources.sh read <source_id> <path> [line_start] [end] # 读取内容
./scripts/sources.sh grep <source_id> <pattern> [path] # 内容搜索(Grep)
./scripts/sources.sh tree <source_id> # 获取文件树
./scripts/sources.sh ls <source_id> [path] # 列出目录
./scripts/sources.sh classification <source_id> [type] # 获取分类
./scripts/sources.sh assign-category <source_id> <cat_id|null> # 分配类别
索引环境变量:DISPLAY_NAME, FOCUS, EXTRACT_BRANDING, EXTRACT_IMAGES, IS_PDF, URL_PATTERNS, EXCLUDE_PATTERNS, MAX_DEPTH, WAIT_FOR, CHECK_LLMS_TXT, LLMS_TXT_STRATEGY, INCLUDE_SCREENSHOT, ONLY_MAIN_CONTENT, ADD_GLOBAL, MAX_AGE
Grep 环境变量:CASE_SENSITIVE, WHOLE_WORD, FIXED_STRING, OUTPUT_MODE, HIGHLIGHT, EXHAUSTIVE, LINES_AFTER, LINES_BEFORE, MAX_PER_FILE, MAX_TOTAL
灵活标识符:大多数端点接受 UUID、显示名称或 URL:
- UUID:550e8400-e29b-41d4-a716-446655440000
- 显示名称:Vercel AI SDK - Core, openai/gsm8k
- URL:https://docs.trynia.ai/, https://arxiv.org/abs/2312.00752
./scripts/repos.sh index <owner/repo> [branch] [display_name] # 索引仓库(ADD_GLOBAL=false 保持私有)
./scripts/repos.sh list # 列出已索引的仓库
./scripts/repos.sh status <owner/repo> # 获取仓库状态
./scripts/repos.sh read <owner/repo> <path/to/file> # 读取文件
./scripts/repos.sh grep <owner/repo> <pattern> [path_prefix] # 代码搜索(Grep)(REF= 用于分支)
./scripts/repos.sh tree <owner/repo> [branch] # 获取文件树
./scripts/repos.sh delete <repo_id> # 删除仓库
./scripts/repos.sh rename <repo_id> <new_name> # 重命名显示名称
Tree 环境变量:INCLUDE_PATHS, EXCLUDE_PATHS, FILE_EXTENSIONS, EXCLUDE_EXTENSIONS, SHOW_FULL_PATHS
./scripts/search.sh query <query> <repos_csv> [docs_csv] # 查询特定仓库/源
./scripts/search.sh universal <query> [top_k] # 搜索所有已索引的源
./scripts/search.sh web <query> [num_results] # 网页搜索
./scripts/search.sh deep <query> [output_format] # 深度研究(Pro 版)
query — 针对性搜索,返回 AI 响应和来源。环境变量:LOCAL_FOLDERS, CATEGORY, MAX_TOKENS
universal — 在所有已索引源上进行混合向量 + BM25 搜索。环境变量:INCLUDE_REPOS, INCLUDE_DOCS, INCLUDE_HF, ALPHA, COMPRESS, MAX_TOKENS, BOOST_LANGUAGES, EXPAND_SYMBOLS
web — 网页搜索。环境变量:CATEGORY (github|company|research|news|tweet|pdf|blog), DAYS_BACK, FIND_SIMILAR_TO
deep — 深度 AI 研究(Pro 版)。环境变量:VERBOSE
./scripts/oracle.sh run <query> [repos_csv] [docs_csv] # 运行研究(同步)
./scripts/oracle.sh job <query> [repos_csv] [docs_csv] # 创建异步任务(推荐)
./scripts/oracle.sh job-status <job_id> # 获取任务状态/结果
./scripts/oracle.sh job-cancel <job_id> # 取消运行中的任务
./scripts/oracle.sh jobs-list [status] [limit] # 列出任务
./scripts/oracle.sh sessions [limit] # 列出研究会话
./scripts/oracle.sh session-detail <session_id> # 获取会话详情
./scripts/oracle.sh session-messages <session_id> [limit] # 获取会话消息
./scripts/oracle.sh session-chat <session_id> <message> # 后续聊天(SSE 流)
环境变量:OUTPUT_FORMAT, MODEL (claude-opus-4-6|claude-sonnet-4-5-20250929|...)
用于搜索 GitHub 仓库的自主智能体,无需索引。由具有 1M 上下文的 Claude Opus 4.6 驱动。
./scripts/tracer.sh run <query> [repos_csv] [context] # 创建 Tracer 任务
./scripts/tracer.sh status <job_id> # 获取任务状态/结果
./scripts/tracer.sh stream <job_id> # 流式传输实时更新(SSE)
./scripts/tracer.sh list [status] [limit] # 列出任务
./scripts/tracer.sh delete <job_id> # 删除任务
环境变量:MODEL (claude-opus-4-6|claude-opus-4-6-1m)
示例工作流:
# 1. 开始搜索
./scripts/tracer.sh run "How does streaming work in generateText?" vercel/ai "Focus on core implementation"
# 返回:{"job_id": "abc123", "session_id": "def456", "status": "queued"}
# 2. 流式传输进度
./scripts/tracer.sh stream abc123
# 3. 获取最终结果
./scripts/tracer.sh status abc123
在以下情况使用 Tracer:
- 探索不熟悉的仓库
- 搜索尚未索引的代码
- 跨仓库查找实现示例
./scripts/papers.sh index <arxiv_url_or_id> # 索引论文
./scripts/papers.sh list # 列出已索引的论文
支持格式:2312.00752, https://arxiv.org/abs/2312.00752, PDF URL, 旧格式 (hep-th/9901001), 带版本号 (2312.00752v1)。环境变量:ADD_GLOBAL, DISPLAY_NAME
./scripts/datasets.sh index <dataset> [config] # 索引数据集
./scripts/datasets.sh list # 列出已索引的数据集
支持格式:squad, dair-ai/emotion, https://huggingface.co/datasets/squad。环境变量:ADD_GLOBAL
./scripts/packages.sh grep <registry> <package> <pattern> [ver] # 搜索软件包代码(Grep)
./scripts/packages.sh hybrid <registry> <package> <query> [ver] # 语义搜索
./scripts/packages.sh read <reg> <pkg> <sha256> <start> <end> # 读取文件行
注册表:npm | py_pi | crates_io | golang_proxy
Grep 环境变量:LANGUAGE, CONTEXT_BEFORE, CONTEXT_AFTER, OUTPUT_MODE, HEAD_LIMIT, FILE_SHA256
Hybrid 环境变量:PATTERN (正则表达式预过滤器), LANGUAGE, FILE_SHA256
./scripts/categories.sh list # 列出类别
./scripts/categories.sh create <name> [color] [order] # 创建类别
./scripts/categories.sh update <cat_id> [name] [color] [order] # 更新类别
./scripts/categories.sh delete <cat_id> # 删除类别
./scripts/categories.sh assign <source_id> <cat_id|null> # 分配/移除类别
./scripts/contexts.sh save <title> <summary> <content> <agent> # 保存上下文
./scripts/contexts.sh list [limit] [offset] # 列出上下文
./scripts/contexts.sh search <query> [limit] # 文本搜索
./scripts/contexts.sh semantic-search <query> [limit] # 向量搜索
./scripts/contexts.sh get <context_id> # 按 ID 获取
./scripts/contexts.sh update <id> [title] [summary] [content] # 更新上下文
./scripts/contexts.sh delete <context_id> # 删除上下文
保存环境变量:TAGS (csv), MEMORY_TYPE (scratchpad|episodic|fact|procedural), TTL_SECONDS, WORKSPACE
列出环境变量:TAGS, AGENT_SOURCE, MEMORY_TYPE
./scripts/deps.sh analyze <manifest_file> # 分析依赖项
./scripts/deps.sh subscribe <manifest_file> [max_new] # 订阅依赖项文档
./scripts/deps.sh upload <manifest_file> [max_new] # 上传清单(多部分)
支持:package.json, requirements.txt, pyproject.toml, Cargo.toml, go.mod, Gemfile。环境变量:INCLUDE_DEV
./scripts/folders.sh create /path/to/folder [display_name] # 从本地目录创建
./scripts/folders.sh list [limit] [offset] # 列出文件夹(STATUS=)
./scripts/folders.sh get <folder_id> # 获取详情
./scripts/folders.sh delete <folder_id> # 删除文件夹
./scripts/folders.sh rename <folder_id> <new_name> # 重命名文件夹
./scripts/folders.sh tree <folder_id> # 获取文件树
./scripts/folders.sh ls <folder_id> [path] # 列出目录
./scripts/folders.sh read <folder_id> <path> [start] [end] # 读取文件(MAX_LENGTH=)
./scripts/folders.sh grep <folder_id> <pattern> [path_prefix] # 搜索文件(Grep)
./scripts/folders.sh classify <folder_id> [categories_csv] # AI 分类
./scripts/folders.sh classification <folder_id> # 获取分类
./scripts/folders.sh sync <folder_id> /path/to/folder # 从本地重新同步
./scripts/folders.sh from-db <name> <conn_str> <query> # 从数据库导入
./scripts/folders.sh preview-db <conn_str> <query> # 预览数据库内容
./scripts/advisor.sh "query" file1.py [file2.ts ...] # 获取代码建议
根据已索引的文档分析您的代码。环境变量:REPOS (csv), DOCS (csv), OUTPUT_FORMAT (explanation|checklist|diff|structured)
./scripts/usage.sh # 获取使用情况摘要
https://apigcp.trynia.ai/v2| 类型 | 索引命令 | 标识符示例 |
|---|---|---|
| 仓库 | repos.sh index |
owner/repo, microsoft/vscode |
| 文档 | sources.sh index |
https://docs.example.com |
| 研究论文 | papers.sh index |
2312.00752, arXiv URL |
| HuggingFace 数据集 | datasets.sh index |
squad, owner/dataset |
| 本地文件夹 | folders.sh create |
UUID, 显示名称(私有,用户作用域) |
对于 search.sh query:
- repositories — 仅搜索 GitHub 仓库(当仅传递仓库时自动检测)
- sources — 仅搜索数据源(当仅传递文档时自动检测)
- unified — 同时搜索两者(当两者都传递时默认)
通过以下方式传递源:
- repositories 参数:逗号分隔的 "owner/repo,owner2/repo2"
- data_sources 参数:逗号分隔的 "display-name,uuid,https://url"
- LOCAL_FOLDERS 环境变量:逗号分隔的 "folder-uuid,My Notes"