Recipe catalog / passage-duplicate
Compare passages for duplication
How much material information do firstPassage and secondPassage share?
You want to detect duplicate or overlapping information in two passages.
Explore this recipe interactively ยท Source and implementation guide
Use passage-duplicate in TypeScript
Install with npm install jev-recipes. Requires Node.js 22.9 or newer and ES modules. Set TYPESAFE_API_KEY in your server environment for live calls, which send input to TypeSafe and use API quota. See the installation guide.
import { passageDuplicate } from 'jev-recipes/passage-duplicate';
const result = await passageDuplicate({
"firstPassage": "Select Forgot password to receive a reset email.",
"secondPassage": "Use Forgot password and we will email a reset link."
});
console.log(result);
Input contract
| Field | Type | Needed |
|---|---|---|
| firstPassage | string | Required |
| secondPassage | string | Required |
| minConfidence | number | Optional |
Full input and result schemas
{
"input": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"firstPassage": {
"type": "string"
},
"secondPassage": {
"type": "string"
},
"minConfidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"firstPassage",
"secondPassage"
]
},
"result": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"model": {
"type": "string"
},
"usage": {
"type": "object",
"properties": {
"input_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"output_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"input_tokens",
"output_tokens"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"ready",
"review"
]
},
"verdict": {
"type": "string",
"enum": [
"duplicate",
"overlapping",
"distinct",
"unclear"
]
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"probabilities": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"duplicate",
"overlapping",
"distinct",
"unclear"
]
},
"additionalProperties": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"required": [
"duplicate",
"overlapping",
"distinct",
"unclear"
]
}
},
"required": [
"model",
"usage",
"status",
"verdict",
"confidence",
"probabilities"
],
"additionalProperties": false
}
}Saved example result
This hand-authored response demonstrates the contract. It is not a model accuracy measurement. Run it without an API key: npx jev-recipes demo passage-duplicate.
{
"model": "demo-fixture",
"usage": {
"input_tokens": 0,
"output_tokens": 0
},
"status": "ready",
"verdict": "duplicate",
"confidence": 0.96,
"probabilities": {
"duplicate": 1,
"overlapping": 0,
"distinct": 0,
"unclear": 0
}
}
Evaluation evidence
No verified live accuracy measurement is available. Evaluate representative cases before using this decision in your workflow.
Use the evaluation guide to measure this decision on your own labeled cases.
Limitations
- Compares a supplied pair. It does not search a corpus, cluster documents, or remove content.
Related recipes
- evidence-novelty: Use evidence-novelty to compare a passage with the evidence already collected.