> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Zarządzanie dokumentami

Zarządzaj bazą wiedzy z poziomu [panelu bazy wiedzy](https://elevenlabs.io/app/agents/knowledge-base), CLI lub API. Więcej o tym, czym jest baza wiedzy i jak korzystają z niej agenci, znajdziesz w artykule [Baza wiedzy](/docs/pl/eleven-agents/customization/knowledge-base).

![Główny interfejs bazy wiedzy z listą
dokumentów](/docs/_fern-img/0887213c4d8099240b7e5a8fec86fc75f4763e8fd80a6f7a6de33545c45f37a2.webp)

## Dodawanie dokumentów

Dokumenty możesz tworzyć z plików, stron internetowych lub zwykłego tekstu. Po utworzeniu przypnij je do agenta, aby ich treść była dostępna w rozmowach.

#### Panel

W [panelu bazy wiedzy](https://elevenlabs.io/app/agents/knowledge-base) lub bezpośrednio w konfiguracji agenta kliknij **Dodaj dokument** i wybierz źródło.

#### Plik

Prześlij dokument w formacie PDF, TXT, DOCX, HTML, EPUB lub Markdown, do 20 MB na plik.

![Interfejs przesyłania plików z obsługiwanymi formatami i limitem 20 MB](/docs/_fern-img/b428874877d6aa2b24167c0293709e6a52a096a13b02244c0a5463139d3988e4.webp)

#### URL

Zaimportuj stronę internetową, wklejając jej URL. Aby pobrać całą witrynę, użyj opcji crawlowania — możesz
przejść przez całą witrynę, podążając za linkami z początkowego URL, albo zaimportować strony z
mapy witryny. Jeśli nie uda się zaimportować strony, sprawdź, czy witryna zezwala na [user agent crawléra](#crawler-user-agent).

![Interfejs importu URL, w którym można wkleić link do dokumentacji](/docs/_fern-img/8523ea5c5ae0418007eb7042d4af3e792a111ca41b74a090357df34cd5b4a369.webp)

> **Warning**
>
> Upewnij się, że masz zgodę na użycie treści z podanych URL-i.

#### Tekst

Wpisz tekst ręcznie i nadaj mu nazwę.

![Interfejs wprowadzania tekstu, w którym można nazwać i dodać własną treść](/docs/_fern-img/4e44e310335dcea24b4832d38813992f1bdc55ef85b4e54353963dc47e9baa0a.webp)

#### CLI

CLI nie przesyła bezpośrednio dokumentów bazy wiedzy. Utwórz je w panelu lub przez API, a potem przypnij uzyskane identyfikatory dokumentów do konfiguracji agenta.

#### Pobierz konfigurację agenta

```bash
elevenlabs agents pull --agent "<agent-name>"
```

#### Edytuj \`agent_configs/\<agent-name>.json\`

Ustaw `conversation_config.agent.prompt.knowledge_base`:

```json
{
  "conversation_config": {
    "agent": {
      "prompt": {
        "knowledge_base": [
          {
            "type": "file",
            "name": "Unladen Swallow Facts",
            "id": "i2YYI6huwBmcgYydAXARmQJc3pmX",
            "usage_mode": "auto"
          }
        ]
      }
    }
  }
}
```

#### Wyślij zmiany

```bash
elevenlabs agents push --agent "<agent-name>"
```

#### API

Utwórz każdy dokument, a następnie przypnij zwrócone identyfikatory do konfiguracji agenta.

```python
import os

from dotenv import load_dotenv
from elevenlabs import ElevenLabs

load_dotenv()

elevenlabs = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"))

# Create a document from text
text_doc = elevenlabs.conversational_ai.knowledge_base.documents.create_from_text(
    text="The airspeed velocity of an unladen swallow (European) is 24 miles per hour, or roughly 11 meters per second.",
    name="Unladen Swallow facts",
)

# Create a document from a URL
url_doc = elevenlabs.conversational_ai.knowledge_base.documents.create_from_url(
    url="https://en.wikipedia.org/wiki/Unladen_swallow",
    name="Unladen Swallow Wikipedia page",
)

# Create a document from a file
file_doc = elevenlabs.conversational_ai.knowledge_base.documents.create_from_file(
    file=open("/path/to/unladen-swallow-facts.txt", "rb"),
    name="Unladen Swallow Facts",
)

# Attach the documents to an agent
elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "agent": {
            "prompt": {
                "knowledge_base": [
                    {"type": "text", "name": text_doc.name, "id": text_doc.id},
                    {"type": "url", "name": url_doc.name, "id": url_doc.id},
                    {"type": "file", "name": file_doc.name, "id": file_doc.id},
                ]
            }
        }
    },
)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import fs from "node:fs";
import "dotenv/config";

const elevenlabs = new ElevenLabsClient();

// Create a document from text
const textDoc = await elevenlabs.conversationalAi.knowledgeBase.documents.createFromText({
  name: "Unladen Swallow Facts",
  text: "The airspeed velocity of an unladen swallow (European) is 24 miles per hour, or roughly 11 meters per second.",
});

// Create a document from a URL
const urlDoc = await elevenlabs.conversationalAi.knowledgeBase.documents.createFromUrl({
  name: "Unladen Swallow Wikipedia page",
  url: "https://en.wikipedia.org/wiki/Unladen_swallow",
});

// Create a document from a file
const fileBuffer = fs.readFileSync("/path/to/unladen-swallow-facts.txt");
const file = new File([fileBuffer], "unladen-swallow-facts.txt", { type: "text/plain" });
const fileDoc = await elevenlabs.conversationalAi.knowledgeBase.documents.createFromFile({
  name: "Unladen Swallow Facts",
  file,
});

// Attach the documents to an agent
await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    agent: {
      prompt: {
        knowledgeBase: [
          { type: "text", name: textDoc.name, id: textDoc.id },
          { type: "url", name: urlDoc.name, id: urlDoc.id },
          { type: "file", name: fileDoc.name, id: fileDoc.id },
        ],
      },
    },
  },
});
```

Aby pobrać całą witrynę do folderu dokumentów zamiast dodawać pojedynczą stronę, uruchom zadanie crawlowania. Crawlowanie działa asynchronicznie — użyj zwróconego identyfikatora zadania, aby sprawdzić jego status lub je anulować.

```python
crawl = elevenlabs.conversational_ai.knowledge_base.crawl_jobs.create(
    url="https://elevenlabs.io/docs",
    max_depth=3,
    max_pages=1000,
)
```

```typescript
const crawl = await elevenlabs.conversationalAi.knowledgeBase.crawlJobs.create({
  url: "https://elevenlabs.io/docs",
  maxDepth: 3,
  maxPages: 1000,
});
```

### User agent crawléra

Importy URL i zadania crawlowania pobierają strony z user agentem `ElevenlabsBot/1.0`.

> **Warning**
>
> Jeśli twoja witryna działa za CDN, WAF lub regułą ochrony przed botami, zezwól na tego user agenta, aby crawler
> mógł odczytywać strony. Gdy żądanie zostanie zablokowane, dokument zostanie utworzony, ale nie będzie można
> wyodrębnić z niego treści.

Crawler respektuje też `robots.txt`. Strony niedozwolone dla `ElevenlabsBot` lub wszystkich user agentów są pomijane, więc sprawdź reguły, jeśli brakuje strony, która powinna zostać zindeksowana. Aby wyraźnie zezwolić crawlerowi:

**`robots.txt`**

```txt robots.txt
User-agent: ElevenlabsBot
Allow: /
```

## Dodawanie istniejących dokumentów do agenta

Dokumenty możesz wykorzystywać ponownie w różnych agentach, więc wspólną wiedzę wystarczy utrzymywać tylko raz.

1. Przejdź do [konfiguracji](https://elevenlabs.io/app/agents/agents) agenta.
2. Znajdź sekcję bazy wiedzy i kliknij **Dodaj dokument**.
3. Wybierz istniejący dokument z bazy wiedzy lub prześlij nowy.

![Interfejs dodawania dokumentów do
agenta](/docs/_fern-img/8e8a6a2df244ed20d1ab889c8ae5dda76aefed0d15f3dd2fe09c35b281c63673.webp)

> **Tip**
>
> Ponowne używanie dokumentów między agentami zapewnia spójną wiedzę i pozwala uniknąć duplikowania przesyłanych plików.

## Edytowanie dokumentów

Możesz edytować treść dokumentu bezpośrednio, zamiast go usuwać i ponownie przesyłać. Edycja dokumentu automatycznie odtwarza fragmenty do wyszukiwania treści i embeddingi RAG, dzięki czemu wyszukiwanie i pobieranie danych przez agenta pozostają zsynchronizowane.

* **Dokumenty tekstowe i pliki**: Edytuj treść bezpośrednio i zapisz.
* **Dokumenty plikowe**: Możesz też zastąpić plik źródłowy nową wersją.
* **Dokumenty URL**: Edytuj treść, gdy automatyczna synchronizacja jest wyłączona. Gdy jest włączona, cykl synchronizacji zarządza dokumentem, a ręczna edycja jest zablokowana.

![Edycja treści dokumentu bezpośrednio w bazie
wiedzy](/docs/_fern-img/4ea01bb2c13162f31f7610b049ae0db542e279a26da38f4c79f17fb89a8524f5.webp)

```python
# Update a document's name or content
elevenlabs.conversational_ai.knowledge_base.documents.update(
    documentation_id="i2YYI6huwBmcgYydAXARmQJc3pmX",
    name="Unladen Swallow Facts",
    content="The airspeed velocity of an unladen swallow (European) is 24 miles per hour.",
)

# Replace the underlying file of a file document

elevenlabs.conversational_ai.knowledge_base.document.update_file(
documentation_id="i2YYI6huwBmcgYydAXARmQJc3pmX",
file=open("/path/to/unladen-swallow-facts-v2.txt", "rb"),
)

```

```typescript
// Update a document's name or content
await elevenlabs.conversationalAi.knowledgeBase.documents.update("i2YYI6huwBmcgYydAXARmQJc3pmX", {
  name: "Unladen Swallow Facts",
  content: "The airspeed velocity of an unladen swallow (European) is 24 miles per hour.",
});

// Replace the underlying file of a file document
const fileBuffer = fs.readFileSync("/path/to/unladen-swallow-facts-v2.txt");
const updatedFile = new File([fileBuffer], "unladen-swallow-facts-v2.txt", { type: "text/plain" });
await elevenlabs.conversationalAi.knowledgeBase.document.updateFile("i2YYI6huwBmcgYydAXARmQJc3pmX", {
  file: updatedFile,
});
```

## Aktualizowanie treści URL

Dokumenty utworzone z URL można odświeżać, aby ponownie pobrać najnowszą treść ze źródła. Odświeżenie ponownie indeksuje dokument, dzięki czemu agenci z RAG używają zaktualizowanej treści.

```python
elevenlabs.conversational_ai.knowledge_base.document.refresh(
    documentation_id="i2YYI6huwBmcgYydAXARmQJc3pmX",
)
```

```typescript
await elevenlabs.conversationalAi.knowledgeBase.document.refresh("i2YYI6huwBmcgYydAXARmQJc3pmX");
```

W panelu możesz też włączyć automatyczną synchronizację, aby odświeżać dokumenty URL automatycznie według harmonogramu. Dzięki temu ich treść pozostaje aktualna bez ręcznych zmian.

## Organizowanie w folderach

Foldery grupują powiązane dokumenty, ułatwiając zarządzanie nimi i przypinanie ich zbiorczo. Utwórz folder, a następnie przenieś do niego dokumenty z panelu lub przez API.

Folder przypięty do agenta udostępnia przez RAG wszystkie zawarte w nim dokumenty, więc agent musi mieć włączone RAG, aby używać folderów.

![Tworzenie folderu i przenoszenie do niego
dokumentów](/docs/_fern-img/8267c0d4a36282c1fcaaacf0a665e5caf8c4cf6f2908451fc5a3b1cf6a8dd2e0.webp)

```python
# Create a folder
folder = elevenlabs.conversational_ai.knowledge_base.documents.create_folder(
    name="Product documentation",
)

# Move a document into the folder

elevenlabs.conversational_ai.knowledge_base.documents.move(
document_id="i2YYI6huwBmcgYydAXARmQJc3pmX",
move_to=folder.id,
)

```

```typescript
// Create a folder
const folder = await elevenlabs.conversationalAi.knowledgeBase.documents.createFolder({
  name: "Product documentation",
});

// Move a document into the folder
await elevenlabs.conversationalAi.knowledgeBase.documents.move("i2YYI6huwBmcgYydAXARmQJc3pmX", {
  moveTo: folder.id,
});
```

## Zależności i usuwanie

Każdy dokument ma kartę **Zależni agenci**, która zawiera listę agentów obecnie od niego zależnych.

![Widok szczegółów dokumentu z kartą
Zależni agenci](/docs/_fern-img/20ecce9f1db77d27bdf760b4a90c9bd2baacb612b48cf660e0f395c82aa3a725.webp)

Nie można usunąć dokumentu, gdy zależy od niego agent. Najpierw usuń dokument z tych agentów albo użyj wymuszonego usunięcia, aby odpiąć go od wszystkich zależnych agentów naraz.