Przejdź do treści
Biblioteka skilli
AI i agenci · Budowanie i kod

intellinode

/intellinode

Buduje funkcje i aplikacje AI w JavaScript lub TypeScript z pakietem IntelliNode: czat w stylu ChatGPT lub Gemini, asystent z pamięcią, RAG na dokumentach i bazy wektorowe, w tym Pinecone, Qdrant, Chroma i pgvector.

Repozytorium
intellinode ↗
Licencja
Apache-2.0
Ostatnia zmiana repozytorium
05.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
7
Skrypty
1
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 05.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

Co sprawdzić przed instalacją
  • 1 skrypt w paczce. Przejrzyj je przed instalacją, bo Claude może je uruchomić.

Skrypty: assets/chat-app/server.js

Co robi i kiedy

Buduje funkcje i aplikacje AI w JavaScript lub TypeScript z pakietem IntelliNode: czat w stylu ChatGPT lub Gemini, asystent z pamięcią, RAG na dokumentach i bazy wektorowe, w tym Pinecone, Qdrant, Chroma i pgvector.

Oryginalny opis (EN)

Build AI features and apps in JavaScript or TypeScript with the IntelliNode npm package (Node.js or the browser). Use when the user wants a Gemini- or ChatGPT-style chat app, an assistant that keeps conversations and long-term memory, RAG over their documents, a vector database (Firestore, Vertex AI RAG Engine or Vector Search, Pinecone, Qdrant, Chroma, Weaviate, Milvus, Elasticsearch, pgvector, MongoDB Atlas), Gemini or Vertex AI features (Google Search grounding, image, video, music and speech generation, the Live API), one API across OpenAI, Anthropic, Gemini, Mistral, Cohere, NVIDIA and lo

Jak działa

  1. Setup
  2. Pick the layer
  3. Gemini and Vertex AI keys
  4. Recipe: a Gemini-style assistant
  5. Rules (checked by running code)
  6. Verify before you report
Sekcje z nagłówków SKILL.md, w oryginale · 116 linii, 1 091 słów
Podgląd SKILL.md
---
name: intellinode
description: Build AI features and apps in JavaScript or TypeScript with the IntelliNode npm package (Node.js or the browser). Use when the user wants a Gemini- or ChatGPT-style chat app, an assistant that keeps conversations and long-term memory, RAG over their documents, a vector database (Firestore, Vertex AI RAG Engine or Vector Search, Pinecone, Qdrant, Chroma, Weaviate, Milvus, Elasticsearch, pgvector, MongoDB Atlas), Gemini or Vertex AI features (Google Search grounding, image, video, music and speech generation, the Live API), one API across OpenAI, Anthropic, Gemini, Mistral, Cohere, NVIDIA and local models, tool calling, or the IntelliNode MCP server. Not for Python projects (use the Intelli library).
license: Apache-2.0
---

# IntelliNode

Follow these rules, then use the recipes. Details live in [references/google.md](references/google.md) (Gemini and
Vertex AI), [references/stores.md](references/stores.md) (vector databases and chat history) and
[references/providers.md](references/providers.md) (providers, models, the MCP server). A runnable chat app template
is in [assets/chat-app](assets/chat-app).

## Setup

- Install: `npm install intellinode` (3.1.0 or later; check with `npm ls intellinode`). CommonJS
  (`const { Assistant } = require('intellinode')`) and ESM (`import { Assistant } from 'intellinode'`) both work.
  TypeScript types ship with the package (`node_modules/intellinode/index.d.ts`).
- Keys come from the environment; for a `.env` file use `require('dotenv').config({ quiet: true })` (without
  `quiet`, dotenv 17 prints a line to stdout). Never hardcode, print, log or commit a key, and never send a server
  key to a browser. Stop with a clear message when a needed key is missing.
- Provider: the one the user names. Otherwise use the first key that is set, in this order: `OPENAI_API_KEY`,
  `ANTHROPIC_API_KEY`, `GEMINI_API_KEY`, `VERTEX_API_KEY`, then a local Ollama model. Tell the user which one you used.

## Pick the layer

| The user wants | Use |
| --- | --- |
| One prompt in, text / JSON / code out | `Gen` (`Gen.generate_text`, `Gen.generate_json`, `Gen.generate_component`, ...) |
| Chat turns, streaming, tool calling, structured output on any provider | `Chatbot` with `Chatbot.createInput(provider, system, options)` |
| A whole chat app: saved conversations, answers from documents with sources, memory, attachments | `Assistant` + a `ChatHistory` + `VectorStore`s |
| Gemini-only features: image / video / music / speech generation, Live API, Files API, caching | `GoogleAIWrapper` |
| Store and search vectors | a `VectorStore` class with an `embedder` |
| Cross-provider tools inside the code editor | the MCP server, see [references/providers.md](references/providers.md) |

## Gemini and Vertex AI keys

- An AI Studio key uses the Gemini Developer API: provider `'gemini'`, or `new GoogleAIWrapper(key)`.
- A Google Cloud Agent Platform key (it starts with `AQ.`) uses Vertex AI express mode: provider `'vertex'`, or
  `new GoogleAIWrapper(key, { vertex: true })`. Sent to the Developer API it fails with `API_KEY_SERVICE_BLOCKED`.
- Add `projectId` (`{ vertex: true, projectId }`) for Veo video, Lyria 2 music, the Live API and Agent Engine.
- The Google Cloud stores (Firestore, RAG Engine, Vector Search) reject API keys and need OAuth:
  `gcloud auth application-default login`, a service account in `GOOGLE_APPLICATION_CREDENTIALS`, or `accessToken`.

## Recipe: a Gemini-style assistant

```js
require('dotenv').config({ quiet: true });
const { Assistant, FileChatHistory, MemoryVectorStore } = require('intellinode');

const key = process.env.VERTEX_API_KEY;
if (!key) throw new Error('Set VERTEX_API_KEY');
const embedder = { provider: 'vertex', apiKey: key, dimensions: 768 };
const knowledge = new MemoryVectorStore({ embedder, path: './data/knowledge.json' });
const assistant = new Assistant({
  provider: 'vertex', apiKey: key,
  systemMessage: 'You are the support assistant for Acme.',
  history: new FileChatHistory({ dir: './data/conversations' }),          // or FirestoreChatHistory
  knowledge,
  memory: new MemoryVectorStore({ embedder, path: './data/memory.json' }), // recalls earlier conversations
  inputOptions: { generationConfig: { thinkingConfig: { thinkingLevel: 'low' } } },
  autoTitle: true,
});
// embed documents once, not on every start; chunk ids are '<id>#0', '<id>#1', ... and the same id replaces them
if (await knowledge.count() === 0) {
  await assistant.addDocuments([{ id: 'policy.md', text: policyText, metadata: { title: 'Refund policy' } }]);
}
const reply = await assistant.chat('How long do refunds take?', { userId: 'u1' });
// reply: { conversationId, text, references, citations, memories, usage, model }
const sources = reply.references.filter((reference) => reference.cited);   // the chunks the answer cites as [n]
const next = await assistant.chat('And for laptops?', { conversationId: reply.conversationId, userId: 'u1' });
```

Stream to a browser with server-sent events:

```js
for await (const event of assistant.stream(message, { conversationId, userId, attachments, googleSearch })) {
  res.write(`data: ${JSON.stringify(event)}\n\n`);   // start (retrieved sources), text chunks, done (the saved answer)
}
res.end();
```

For a complete local app (Node http server + one HTML page, streaming, cited sources, a web search toggle, `/image`),
copy `assets/chat-app/` into the project and follow its README.

## Rules (checked by running code)

1. `chatbot.chat(input)` returns an array of replies: strings, or `{ content, tool_calls }`; `chatbot.lastResponse`
   keeps the raw provider response. `assistant.chat()` returns one object with `usage` and `model` (`Assistant` uses a
   per-turn view of its chatbot, so read those from the reply, not from `assistant.chatbot.lastResponse`).
2. `reply.references` are the chunks retrieved for the question (up to `topK`), not proof of use: the answer cites
   the ones it used as `[n]` and those have `cited: true`. Raise `minScore` to drop weak matches.
3. For Gemini inputs pass `systemInstruction: true` to `Chatbot.createInput('gemini' | 'vertex', system, options)`
   so the system message is a real system instruction. Without it the old user / model turn pair is sent.
4. Gemini 3 models think before answering. For chat set `generationConfig: { thinkingConfig: { thinkingLevel: 'low' } }`.
   A small `maxTokens` can be spent on thinking and return an empty string; raise it rather than retrying.
5. Google Search grounding: `googleSearch: true` on the `Assistant` (every turn) or in the turn options (one turn),
   gemini and vertex only. Web citations are `{ title, uri }` where `uri` is a Google redirect link and `title` is
   often just the domain; show them as links.
6. Gemini image models return one image per call: `GoogleAIWrapper.extractImages(response)[0]` is
   `{ mimeType, data (base64) }`; pick the file extension from `mimeType`. Shape it with
   `{ imageConfig: { aspectRatio: '16:9' } }`. Speech: `await wrapper.textToSpeech(text, { voice: 'Kore' })` returns
   a WAV Buffer.
7. Keep one embedder per vector store forever: a different model or `dimensions` breaks the stored vectors.
   `gemini-embedding-001` returns 3072 numbers unless `dimensions` is set.
8. Vector store results are `{ id, score, text, metadata }`, score as similarity (higher is closer); `filter` is
   metadata equality (`{ lang: 'en' }`, an array means one of). `VertexRAGStore` queries by text only.
9. `Assistant` conversations belong to the first `userId` they were used with; another `userId` gets an error.
   Pass the signed-in user's id on every call, and keep servers that hold keys on 127.0.0.1 or behind auth.
10. Image, video and music generation are billed per call (Veo also takes minutes); tell the user before running
    them. Provider-specific limits (Claude thinking budgets, Firestore indexes, the Live API WebSocket) are in the
    references.

## Verify before you report

Run a short script with the real key and read the output: the text must answer the question, a document question
must cite at least one reference (`cited: true`), and saved conversations must reload (`assistant.getMessages(id)`).
An empty string usually means the thinking budget ate `maxTokens`. Report `reply.model`, the provider, where
conversations and vectors are stored, and what you did not test (for example OAuth-only Google Cloud services
without credentials).
Pliki w paczce (7)
  • SKILL.md 8 KB
  • assets/chat-app/README.md 2 KB
  • assets/chat-app/server.js 8 KB
  • assets/chat-app/public/index.html 14 KB
  • references/google.md 10 KB
  • references/providers.md 4 KB
  • references/stores.md 6 KB

Wersje

W bazie nie ma innych skilli o nazwie intellinode.

Identyczna treść występuje jeszcze w 1 innych folderach na GitHubie. Tu pokazujemy jedną, najlepiej ocenioną kopię.

Migawka bazy z 28.10.2026 · wersja paczki 5f78b4238ca1 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 90vector-database-engineer
    Dostarcza wzorce baz wektorowych i wyszukiwania semantycznego dla Pinecone, Weaviate, Qdrant, Milvus i pgvector w systemach RAG i rekomendacji.
  • 90vector-database-engineer
    Projektuje przechowywanie wektorów, indeksowanie i semantyczne wyszukiwanie w Pinecone, Weaviate, Qdrant, Milvus lub pgvector dla RAG, wyszukiwania podobieństwa i rekomendacji.
  • 96intelli-flows
    Projektuje i buduje w Pythonie przepływy AI w Intelli, łącząc dostawców modeli, asystentów i narzędzia MCP.
  • 100rag-expert
    Projektuje systemy RAG: chunking, embeddingi, wyszukiwanie wektorowe i hybrydowe, reranking, ugruntowanie odpowiedzi w źródłach i ocenę, także z pgvector, Chroma, Qdrant i Pinecone.
  • 100langchain4j-vector-stores-configuration
    Dostarcza wzorce konfiguracji magazynów wektorowych LangChain4J (pgvector, Pinecone, MongoDB, Milvus, Neo4j) dla aplikacji RAG, w tym wyszukiwanie hybrydowe i optymalizacja wydajności.
  • 85pinecone:n8n
    Buduje przepływy n8n z węzłem Pinecone Assistant lub Pinecone Vector Store, w tym pipeline'y RAG i czat z dokumentami, oraz pomaga rozwiązywać problemy tych węzłów.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.