Documentation Index
Fetch the complete documentation index at: https://runcrate.ai/docs/llms.txt
Use this file to discover all available pages before exploring further.
Summarize long-form content — articles, meeting transcripts, research papers, support tickets — using open-source and frontier models through a single API endpoint.
Recommended models
| Model | Context | Best for |
|---|
| DeepSeek-V3 | 128K tokens | General-purpose summaries, cost-effective |
| Gemini 2.5 Flash | 1M tokens | Very long documents, research papers |
Single-document summary
from runcrate import Runcrate
client = Runcrate(api_key="rc_live_YOUR_API_KEY")
article = open("article.txt").read()
response = client.models.chat_completion(
model="deepseek-ai/DeepSeek-V3",
messages=[
{"role": "system", "content": "Return a 3–5 sentence summary capturing the key points."},
{"role": "user", "content": f"Summarize this article:\n\n{article}"},
],
max_tokens=512,
temperature=0.3,
)
print(response.choices[0].message.content)
Structured summary with key points
import { runcrate } from '@runcrate/ai';
import { generateText, Output } from 'ai';
import { z } from 'zod';
const SummarySchema = z.object({
title: z.string().describe('A short title for the content'),
summary: z.string().describe('A 2–3 sentence overview'),
keyPoints: z.array(z.string()).describe('3–5 bullet points'),
sentiment: z.enum(['positive', 'negative', 'neutral', 'mixed']),
});
const { output } = await generateText({
model: runcrate('deepseek-ai/DeepSeek-V3'),
output: Output.object({ schema: SummarySchema }),
prompt: `Analyze and summarize this text:\n\n${articleText}`,
});
console.log(output.title);
console.log(output.keyPoints);
Long documents with Gemini Flash
For documents exceeding 128K tokens — full research papers, legal contracts — use Gemini 2.5 Flash with its 1M-token context window:
from runcrate import Runcrate
client = Runcrate(api_key="rc_live_YOUR_API_KEY")
long_document = open("research-paper.txt").read()
response = client.models.chat_completion(
model="google/gemini-2.5-flash",
messages=[
{"role": "system", "content": "Summarize this research paper. Include: objective, methodology, key findings, and conclusions."},
{"role": "user", "content": long_document},
],
max_tokens=1024,
)
print(response.choices[0].message.content)
Batch summarization
from runcrate import Runcrate
from concurrent.futures import ThreadPoolExecutor
client = Runcrate(api_key="rc_live_YOUR_API_KEY")
documents = [
{"id": "mtg-01", "text": "Meeting notes from Monday standup..."},
{"id": "mtg-02", "text": "Product review meeting discussion..."},
{"id": "mtg-03", "text": "Quarterly planning session notes..."},
]
def summarize(doc):
response = client.models.chat_completion(
model="deepseek-ai/DeepSeek-V3",
messages=[
{"role": "system", "content": "Summarize in 3 bullet points. Include action items."},
{"role": "user", "content": doc["text"]},
],
max_tokens=256,
temperature=0.2,
)
return {"id": doc["id"], "summary": response.choices[0].message.content}
with ThreadPoolExecutor(max_workers=5) as pool:
results = list(pool.map(summarize, documents))
for r in results:
print(f"\n--- {r['id']} ---\n{r['summary']}")
Tips
- Lower temperature (0.2–0.3) produces more faithful summaries.
- DeepSeek-V3 is the best cost-to-quality ratio for most summarization tasks.
- Gemini 2.5 Flash is the choice when the source document exceeds 128K tokens.
Next steps