rw-integrate-documents

Par runwayml · skills

Aider les utilisateurs à ajouter des documents de base de connaissances aux personnages Runway pour des conversations spécifiques à un domaine

npx skills add https://github.com/runwayml/skills --skill rw-integrate-documents

Intégrer des Documents (Base de connaissances)

PRÉREQUIS : Lancez d'abord +rw-check-compatibility. Lancez +rw-fetch-api-reference pour charger la dernière référence API avant l'intégration. +rw-setup-api-key — Les identifiants API doivent être configurés

UTILISÉ PAR : +rw-integrate-characters — Les Documents sont liés aux Avatars pour leur donner une connaissance spécifique au domaine

Donnez à vos Characters accès à une connaissance spécifique au domaine. Téléchargez du contenu que votre Avatar peut consulter lors des conversations pour des réponses précises et contextuelles.

Quand utiliser les Documents

Cas d'usage Contenu exemple
Support client FAQs, infos produit, politiques d'entreprise, procédures de retour
Quizzes & jeux Banques de questions, réponses correctes, règles de scoring
Éducation Matériel de cours, contenu de référence, objectifs d'apprentissage
Expériences de marque Directives de marque, messagerie, catalogues produits

Contraintes

  • Chaque Avatar supporte jusqu'à 50 000 tokens de connaissance
  • Formats supportés : texte brut et Markdown
  • Plus de formats prévus pour les futures versions

Flux

Le flux est : Créer un DocumentLe lier à un Avatar

Étape 1 : Créer un Document

Node.js

import RunwayML from '@runwayml/sdk';

const client = new RunwayML();

const document = await client.documents.create({
  name: 'Product FAQ',
  content: `# Product FAQ

## What is your return policy?
We offer a 30-day return policy for all unused items in original packaging.

## How do I track my order?
Log in to your account and visit the Orders page. You'll find tracking information for all shipped orders.

## Do you offer international shipping?
Yes, we ship to over 50 countries. Shipping costs and delivery times vary by destination.`,
});

console.log('Document created:', document.id);

Python

from runwayml import RunwayML

client = RunwayML()

document = client.documents.create(
    name='Product FAQ',
    content="""# Product FAQ

## What is your return policy?
We offer a 30-day return policy for all unused items in original packaging.

## How do I track my order?
Log in to your account and visit the Orders page.

## Do you offer international shipping?
Yes, we ship to over 50 countries.""",
)

print('Document created:', document.id)

Étape 2 : Lier le Document à un Avatar

Mettez à jour votre Avatar pour rattacher le document. Ceci remplace tout attachement de document existant — passez tous les ID de documents que vous souhaitez lier.

Node.js

await client.avatars.update(avatarId, {
  documentIds: [document.id],
});

Python

client.avatars.update(
    avatar_id,
    document_ids=[document.id],
)

Plusieurs Documents

Vous pouvez lier plusieurs documents à un seul avatar (le total doit rester sous 50 000 tokens) :

const faq = await client.documents.create({
  name: 'FAQ',
  content: '...',
});

const policies = await client.documents.create({
  name: 'Company Policies',
  content: '...',
});

await client.avatars.update(avatarId, {
  documentIds: [faq.id, policies.id],
});

Étape 3 : Démarrer une Session

Une fois les documents liés, l'Avatar a automatiquement accès à la connaissance lors des conversations. Démarrez une session comme d'habitude — aucune configuration supplémentaire nécessaire :

const session = await client.realtimeSessions.create({
  model: 'gwm1_avatars',
  avatar: {
    type: 'custom',
    avatarId: avatarId,
  },
});
session = client.realtime_sessions.create(
    model='gwm1_avatars',
    avatar={
        'type': 'custom',
        'avatar_id': avatar_id,
    },
)

Consultez +rw-integrate-characters pour le flux complet de création de session, polling et WebRTC.

Modèles d'intégration

Charger des Documents à partir de Fichiers

Lisez le contenu de fichiers locaux et créez des documents :

import fs from 'fs';
import RunwayML from '@runwayml/sdk';

const client = new RunwayML();

// Read a local markdown file
const content = fs.readFileSync('./knowledge/product-faq.md', 'utf-8');

const document = await client.documents.create({
  name: 'Product FAQ',
  content,
});
from pathlib import Path
from runwayml import RunwayML

client = RunwayML()

content = Path('./knowledge/product-faq.md').read_text()

document = client.documents.create(
    name='Product FAQ',
    content=content,
)

Mises à jour dynamiques de la Connaissance

Mettez à jour les documents par programmation — utile pour la synchronisation avec un CMS ou une base de données :

// Example: API endpoint to update character knowledge
app.post('/api/avatar/update-knowledge', async (req, res) => {
  const { avatarId, documents } = req.body;

  // Create new documents
  const docIds = [];
  for (const doc of documents) {
    const created = await client.documents.create({
      name: doc.name,
      content: doc.content,
    });
    docIds.push(created.id);
  }

  // Link all documents to the avatar (replaces existing)
  await client.avatars.update(avatarId, {
    documentIds: docIds,
  });

  res.json({ success: true, documentCount: docIds.length });
});

Conseils

  • Utilisez Markdown pour le contenu structuré — les titres aident l'Avatar à naviguer dans la connaissance.
  • Soyez concis — restez bien en dessous de la limite de 50 000 tokens pour une meilleure qualité de récupération.
  • Organisez par sujet — plusieurs documents ciblés fonctionnent mieux qu'un seul document géant.
  • Mettez à jour régulièrement — gardez la connaissance à jour en recréant les documents quand le contenu change.
  • Les documents peuvent aussi être gérés via l'interface du Developer Portal.

Skills similaires