Nia
Nia
Nozomio Labs가 만든 Nia는 최신의 기술적 컨텍스트를 제공하는 API예요. 문서, 저장소(repo), PDF, 데이터셋을 인덱싱한 뒤 AI로 검색할 수 있어서, 에이전트가 환각 대신 실제 답변을 얻도록 도와줘요. @nozomioai/nia-ai-sdk 패키지는 tools, middleware, 직접 streaming 헬퍼를 통해 Nia를 AI SDK와 연동해 줘요.
다음 같은 워크플로에서 쓰기 좋게 설계됐어요:
- 공개 GitHub 및 문서 리서치를 위해 Nia Tracer를 tool로 호출
- 인덱싱된 저장소, 문서, PDF, 데이터셋 위에서 근거 기반 리서치를 위해 Nia Oracle을 tool로 호출
- 깊은 문서 분석과 구조화된 추출을 위해 Nia Document Agent를 tool로 호출
- 기존 AI SDK 모델에 Nia 기반 middleware를 더해 보강
- Tracer, Oracle, Document Agent 이벤트를 앱에서 직접 스트리밍
더 자세한 내용은 Nia 문서에서 확인하세요.
출처: 문서
본문
설정 (Setup)
Nia 어댑터는 @nozomioai/nia-ai-sdk 패키지에 들어 있어요. 다음과 같이 설치할 수 있어요:
Nia middleware를 모델 프로바이더와 함께 쓰고 싶다면 그 프로바이더도 함께 설치하세요. 예를 들어:
pnpm add @ai-sdk/openai
Nia API 키를 설정하세요:
export NIA_API_KEY=nia_your_api_key
API 키는 Nia 대시보드에서 받을 수 있어요.
Tool 사용법
Nia는 generateText 나 streamText 에 전달하는 AI SDK tools 세트로 잘 동작해요.
generateText
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { createNiaResearchTools } from '@nozomioai/nia-ai-sdk';
const tools = createNiaResearchTools({
apiKey: proces...EY!,
tracer: {
defaultRequest: {
mode: 'tracer-deep',
},
},
oracle: {
defaultRequest: {
repositories: ['vercel/ai'],
dataSources: ['Vercel AI SDK'],
},
},
documentAgent: {
defaultRequest: {
sourceId: 'src_abc123',
},
},
});
const result = await generateText({
model: openai('gpt-4.1'),
prompt:
'Research how AI SDK middleware works, then summarize the best integration pattern.',
tools,
});
console.log(result.text);
어떤 서비스 키에 false 를 전달하면 그 서비스를 완전히 끌 수 있어요. 예를 들어 Tracer만 필요하다면 oracle: false 로 쓰면 되죠. 서비스별 transport 옵션(예: 별도 apiKey)은 제공되면 최상위 옵션보다 우선해요.
SDK는 tool 하나만 필요할 때 쓸 수 있는 createTracerTool(), createOracleTool(), createDocumentAgentTool() 도 내보내요.
Middleware 사용법
기본 모델이 실행되기 전에 Nia가 마지막 사용자 메시지를 보강하길 원할 때 middleware를 사용하세요.
withOracleContext
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { withOracleContext } from '@nozomioai/nia-ai-sdk';
const model = withOracleContext(openai('gpt-4.1'), {
apiKey: proces...EY!,
defaultRequest: {
repositories: ['vercel/ai'],
dataSources: ['Vercel AI SDK'],
},
});
const result = await generateText({
model,
prompt: 'How should I think about AI SDK middleware for retrieval?',
});
console.log(result.text);
공개 GitHub 리서치에는 withTracerContext() 를, 인덱싱된 PDF나 문서와 작업할 때는 withDocumentAgentContext() 를 같은 방식으로 사용할 수 있어요.
더 세밀한 제어가 필요하다면, 저수준의 createTracerMiddleware(), createOracleMiddleware(), createDocumentAgentMiddleware() 내보내기가 직접 조합할 수 있는 원시 LanguageModelMiddleware 객체를 반환해요.
직접 스트리밍 헬퍼
Nia의 원시 job 이벤트가 필요하다면 직접 스트리밍 헬퍼를 사용하세요:
streamTracer()streamOracle()streamOracleSessionChat()streamDocumentAgent()
import { streamTracer } from '@nozomioai/nia-ai-sdk';
const session = await streamTracer(
{
apiKey: proces...EY!,
},
{
query: 'How does generateText stream responses?',
repositories: ['vercel/ai'],
mode: 'tracer-fast',
},
);
for await (const event of session.events) {
console.log(event.event, event.data);
}
추가 자료
더 알아보기 (Learn more)
- 사용자 정의 프로바이더 작성하기
- A2A
- ACP (Agent Client Protocol)
- Aihubmix
- AI/ML API
- Anthropic Vertex
- Automatic1111
- Azure AI
- Browser AI
- Claude Code
- Cloudflare AI Gateway
- Cloudflare Workers AI
- Codex CLI
- Crosshatch
- Dify
- Firemoon
- FriendliAI
- Gemini CLI
- Helicone
- Inflection AI
- Jina AI
- LangDB
- Letta
- llama.cpp
- LlamaGate
- MCP Sampling AI Provider
- Mem0
- MiniMax
- Mixedbread
- Ollama
- OpenCode
- OpenRouter
- Portkey
- Qwen
- React Native Apple
- Requesty
- Runpod
- SambaNova
- SAP AI Core
- Sarvam
- Soniox
- Spark
- Supermemory
- Voyage AI
- Zhipu AI (Z.AI)
- vectorstores
- Codex CLI (App Server)
- Apertis
- OLLM
- Cencori
- Hindsight
- Nia
- ZeroEntropy
- Crusoe
- Neon AI Gateway
- QVAC
- Interfaze
- Telnyx
- Flowise