Use this endpoint if your app lets users confirm the assistant’s answers.Save a conversation turn only learns facts from
what the user says. A fact in the assistant’s reply, such as “Sara
manages the website project”, is not remembered as a fact. This endpoint lets
it become one, once the user confirms it.How it works:
The user asks a question, and your assistant replies.
You call this endpoint. EDN classifies the reply as one of two kinds:
AI_INFERRED: the reply directly answers a factual question the user
asked. EDN saves it as an unconfirmed memory, if its facts are backed by
the sip you send.
AI_GENERATED: anything else, such as a suggestion, a plan or a
draft. EDN saves nothing. To keep it for confirmation, save it with
Save a generated statement.
Your app shows the saved answer with a confirm option, such as a check mark.
When the user confirms, call Confirm a memory.
It becomes a USER_CONFIRMED fact that SIPs use from then on.
If your app has no confirm feature, you can skip this endpoint. Unconfirmed
memories are never used until the user confirms them.
What EDN does
Checks whether the reply answers a factual question from the user.
Checks that any figures or named roles in the reply are backed by the sip you send.
Saves the reply as an AI_INFERRED memory when both checks pass.
Otherwise saves nothing, and tells you why in reason.
Identifier for the conversation. Use the same value for every turn in the same conversation. If EDN hasn’t seen this value before, it creates a new session. Format: 1 to 128 characters, using only letters, digits, period (.), underscore (_), colon (:) and hyphen (-)
user_message
string
Yes
The user’s message that the reply answers. Must not be empty
assistant_message
string
Yes
The assistant reply to check. Inline citation markers such as [1] are removed before storage. Must not be empty
project_id
string
No
Identifier for the project to store it in. Omit to store it in general memory. Must be one of your projects
sip
string
No
The sip returned by Build a SIP for the same turn. EDN checks the reply’s figures and named roles against it. If omitted, replies that state figures or name who holds a role are not saved
curl -X POST "https://api.tensorpro.ai/api/v1/memory/infer" \ -H "Authorization: Bearer $EDN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "session_id": "chat-42", "user_message": "Who manages the website project?", "assistant_message": "Sara manages the website project.", "sip": "[MEMORY CONTEXT]\n- Sara manages the website project. (USER_STATED)\n- The website relaunch is planned for March. (DOCUMENT_VERIFIED)\n[END MEMORY CONTEXT]" }'
import osimport requestsresp = requests.post( "https://api.tensorpro.ai/api/v1/memory/infer", headers={"Authorization": f"Bearer {os.environ['EDN_API_KEY']}"}, json={ "session_id": "chat-42", "user_message": "Who manages the website project?", "assistant_message": "Sara manages the website project.", "sip": "[MEMORY CONTEXT]\n- Sara manages the website project. (USER_STATED)\n- The website relaunch is planned for March. (DOCUMENT_VERIFIED)\n[END MEMORY CONTEXT]" },)resp.raise_for_status()print(resp.json())
const resp = await fetch("https://api.tensorpro.ai/api/v1/memory/infer", { method: "POST", headers: { Authorization: `Bearer ${process.env.EDN_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ "session_id": "chat-42", "user_message": "Who manages the website project?", "assistant_message": "Sara manages the website project.", "sip": "[MEMORY CONTEXT]\n- Sara manages the website project. (USER_STATED)\n- The website relaunch is planned for March. (DOCUMENT_VERIFIED)\n[END MEMORY CONTEXT]" }),});console.log(await resp.json());
true when EDN saved the reply as an AI_INFERRED memory
provenance
string
How EDN classified the reply: AI_INFERRED (it answers a factual question) or AI_GENERATED (anything else)
record_id
string or null
Identifier for the saved memory, or null when nothing was saved
reason
string or null
Why nothing was saved: not_an_answer, abstention or unsupported_claim. null when saved is true
Important behavior
AI_INFERRED memories are never used in a SIP until the user confirms them with Confirm a memory.
reason: not_an_answer means the reply doesn’t answer a factual question from the user, and provenance is AI_GENERATED. To keep it anyway, use Save a generated statement.
reason: abstention means the reply says it doesn’t know.
reason: unsupported_claim means a figure or named role in the reply isn’t backed by the sip you sent.
Each call counts toward your daily limit on saving memory, even when nothing is saved.
Errors
Status
Code
When
401
UNAUTHORIZED
The API key is missing, invalid or revoked
404
NOT_FOUND
project_id isn’t one of your projects
422
VALIDATION_ERROR
A required field is missing or empty, or session_id has invalid characters
429
RATE_LIMITED
Per-minute or daily limit on saving memory reached. Retry after Retry-After seconds
Your EDN API key, sent as Bearer YOUR_API_KEY. Create keys in the Console.
Body
application/json
assistant_message
string
required
How the assistant replied.
Minimum string length: 1
Example:
"Sara manages the website project."
session_id
string
required
Which chat this belongs to.
Required string length: 1 - 128
Example:
"chat-42"
user_message
string
required
What the user said.
Minimum string length: 1
Example:
"Who manages the website project?"
project_id
string | null
Which project/workspace this belongs to. Leave it out for a regular chat.
sip
string | null
The background info/evidence that was given to the assistant when it wrote its answer. EDN uses this to check if any specific facts in the answer are actually backed up. Without it, factual claims can't be verified.
Example:
"[MEMORY CONTEXT]\n- Sara manages the website project. (USER_STATED)\n[END MEMORY CONTEXT]"
Response
Successful Response
provenance
enum<string>
required
How EDN classified the answer. AI_INFERRED: it answers a factual question the user asked. AI_GENERATED: anything else, such as a suggestion or general conversation.
Available options:
AI_INFERRED,
AI_GENERATED
reason
enum<string> | null
required
Why nothing was saved, when saved is false. not_an_answer: the reply doesn't answer a factual question from the user. abstention: the reply says it doesn't know. unsupported_claim: a fact in the reply isn't backed by the sip you sent. Null when saved is true.
Available options:
not_an_answer,
abstention,
unsupported_claim
record_id
string | null
required
The ID of the saved memory when saved is true, otherwise null.
saved
boolean
required
true when EDN saved the answer as an AI_INFERRED memory.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"EDN","colors":{"primary":"#00ADE4","light":"#00ADE4","dark":"#00ADE4"},"logo":{"light":"https://mintcdn.com/tensor-pro/AWOd-GOQzhH77YoI/logo/Logo_5_05.png?fit=max\u0026auto=format\u0026n=AWOd-GOQzhH77YoI\u0026q=85\u0026s=a774ff4824e8db2cc8869867a69e2868","dark":"https://mintcdn.com/tensor-pro/AWOd-GOQzhH77YoI/logo/Logo_5_05.png?fit=max\u0026auto=format\u0026n=AWOd-GOQzhH77YoI\u0026q=85\u0026s=a774ff4824e8db2cc8869867a69e2868","href":"https://tensorpro.ai"},"favicon":"https://mintcdn.com/tensor-pro/AWOd-GOQzhH77YoI/favicon.svg?fit=max\u0026auto=format\u0026n=AWOd-GOQzhH77YoI\u0026q=85\u0026s=7f276f5621823a82a327cd4aeb47bf47","appearance":{"default":"light"},"navbar":{"primary":{"type":"button","label":"Console","href":"https://console-beta.tensorpro.ai/sign-in"}},"footer":{"links":[{"header":"PRODUCTS","items":[{"label":"Workspace","href":"https://tensorpro.ai/workspace"},{"label":"API","href":"https://tensorpro.ai/api-product"},{"label":"Platform","href":"https://tensorpro.ai/platform"},{"label":"Pricing","href":"https://tensorpro.ai/pricing"}]},{"header":"DEVELOPERS","items":[{"label":"Docs","href":"https://docs.tensorpro.ai"}]},{"header":"COMPANY","items":[{"label":"TensorPRO","href":"https://tensorpro.ai/about"},{"label":"Research","href":"https://tensorpro.ai/research"},{"label":"Investors","href":"https://tensorpro.ai/investors"},{"label":"News","href":"https://tensorpro.ai/news"},{"label":"Security and Compliance","href":"https://tensorpro.ai/security"},{"label":"Responsible AI","href":"https://tensorpro.ai/responsible-ai"},{"label":"Contact","href":"https://tensorpro.ai/contact"}]},{"header":"PRIVACY AND TERMS","items":[{"label":"Privacy Policy","href":"https://tensorpro.ai/privacy"},{"label":"Terms of Service","href":"https://tensorpro.ai/terms"}]}]},"fonts":{"heading":{"family":"Geist"},"body":{"family":"Inter"}},"styling":{"codeblocks":{"theme":"github-light"},"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tensor-pro","hasAudioNarration":false,"actualSubdomain":"tensor-pro","customDomains":["docs.tensorpro.ai"],"gitSource":{"type":"github","owner":"tensorpro-org","repo":"edn-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af6a27e8a288420d5340e2f","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"default","tag":"API Reference","count":27},{"language":"default","tag":"Developer Docs","count":13},{"language":"default","tag":"Console","count":8},{"language":"default","tag":"Sessions","count":7},{"language":"default","tag":"Core concepts","count":6},{"language":"default","tag":"Manage memory","count":5},{"language":"default","tag":"Save memory","count":4},{"language":"default","tag":"Projects","count":4},{"language":"default","tag":"Documents","count":3},{"language":"default","tag":"Get started","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--font-mono: \"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas,\n monospace}code,kbd,samp,pre,pre code,[class*=\"language-\"],.prose code,.prose pre{font-family:\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas,\n monospace}#footer>div{padding-bottom:2rem}#footer::after{content:\"(c) 2026 TensorPRO. All rights reserved.\";display:block;align-self:stretch;width:100%;box-sizing:border-box;padding:1.25rem 2rem;background-color:#0f1b2d;color:#e5e7eb;text-align:center;font-size:0.8125rem;line-height:1.5}.prose table{font-size:1em}.prose a,.prose table a{font-size:inherit;line-height:inherit}#content-area:has(#required-headers) .api-section{display:none}body:has(#required-headers) #content-side-layout{display:none}body:has(#required-headers) #content-area{max-width:54rem}body:has(#required-headers) #content-area .code-group,body:has(#required-headers) #content-area .code-block{max-width:38rem}body:has(#required-headers) [id^=\"api-playground\"][id$=\"operation-page\"]>div:first-child{max-width:32rem}.nav-tabs-item[data-active=\"true\"]{color:#00ade4!important;font-weight:600}.nav-tabs-item[data-active=\"true\"]::after{content:\"\";position:absolute;left:0;right:0;bottom:0;height:2px;background-color:#00ade4;border-radius:2px}.landing-cards .card{min-height:200px}.landing-cards .card>div{padding:1.75rem 1.5rem}#sidebar a[aria-current=\"page\"],#sidebar a[data-active=\"true\"]{color:#00ade4!important;font-weight:600;background-color:rgba(0, 173, 228, 0.08)}"}],"page":{"pagePath":"api-reference/infer-round","slug":"/api-reference/infer-round","pageMetadata":{"openapi":"post /api/v1/memory/infer","title":"Classify an assistant reply","description":"Check whether your assistant's reply is a factual answer, and if it is, save it as an unconfirmed fact that the user can confirm later.","href":"/api-reference/infer-round"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Check whether your assistant’s reply is a factual answer, and if it is, save it as an unconfirmed fact that the user can confirm later.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Callout,CodeBlock,CodeGroup,Heading,Table}=_components;if(!Callout)_missingMdxReference(`Callout`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Use this endpoint if your app lets users confirm the assistant’s answers.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/api-reference/ingest-round`,children:`Save a conversation turn`}),` only learns facts from\nwhat the `,_jsx(_components.strong,{children:`user`}),` says. A fact in the `,_jsx(_components.strong,{children:`assistant’s`}),` reply, such as “Sara\nmanages the website project”, is not remembered as a fact. This endpoint lets\nit become one, once the user confirms it.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`How it works:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`The user asks a question, and your assistant replies.`}),`\n`,_jsxs(_components.li,{children:[`You call this endpoint. EDN classifies the reply as one of two kinds:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`AI_INFERRED`})}),`: the reply directly answers a factual question the user\nasked. EDN saves it as an unconfirmed memory, if its facts are backed by\nthe `,_jsx(_components.code,{children:`sip`}),` you send.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`AI_GENERATED`})}),`: anything else, such as a suggestion, a plan or a\ndraft. EDN saves nothing. To keep it for confirmation, save it with\n`,_jsx(_components.a,{href:`/api-reference/generated-round`,children:`Save a generated statement`}),`.`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.li,{children:`Your app shows the saved answer with a confirm option, such as a check mark.`}),`\n`,_jsxs(_components.li,{children:[`When the user confirms, call `,_jsx(_components.a,{href:`/api-reference/confirm-memory-record`,children:`Confirm a memory`}),`.\nIt becomes a `,_jsx(_components.code,{children:`USER_CONFIRMED`}),` fact that SIPs use from then on.`]}),`\n`]}),`\n`,_jsx(Callout,{icon:`circle-info`,color:`#00ADE4`,children:_jsx(_components.p,{children:`If your app has no confirm feature, you can skip this endpoint. Unconfirmed\nmemories are never used until the user confirms them.`})}),`\n`,_jsx(Heading,{level:`2`,id:`what-edn-does`,children:`What EDN does`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Checks whether the reply answers a factual question from the user.`}),`\n`,_jsxs(_components.li,{children:[`Checks that any figures or named roles in the reply are backed by the `,_jsx(_components.code,{children:`sip`}),` you send.`]}),`\n`,_jsxs(_components.li,{children:[`Saves the reply as an `,_jsx(_components.code,{children:`AI_INFERRED`}),` memory when both checks pass.`]}),`\n`,_jsxs(_components.li,{children:[`Otherwise saves nothing, and tells you why in `,_jsx(_components.code,{children:`reason`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`required-headers`,children:`Required headers`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Header`}),_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Authorization`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Bearer YOUR_API_KEY`})}),_jsxs(_components.td,{children:[`Your EDN API key. Create keys in the `,_jsx(_components.a,{href:`/console/api-keys`,children:`Console`}),`. See `,_jsx(_components.a,{href:`/authentication`,children:`Authentication`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Content-Type`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`application/json`})}),_jsx(_components.td,{children:`The request body is JSON`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`request`,children:`Request`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`session_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[`Identifier for the conversation. Use the same value for every turn in the same conversation. If EDN hasn’t seen this value before, it creates a new session. Format: 1 to 128 characters, using only letters, digits, period (`,_jsx(_components.code,{children:`.`}),`), underscore (`,_jsx(_components.code,{children:`_`}),`), colon (`,_jsx(_components.code,{children:`:`}),`) and hyphen (`,_jsx(_components.code,{children:`-`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`user_message`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`The user’s message that the reply answers. Must not be empty`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`assistant_message`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[`The assistant reply to check. Inline citation markers such as `,_jsx(_components.code,{children:`[1]`}),` are removed before storage. Must not be empty`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`project_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Identifier for the project to store it in. Omit to store it in general memory. Must be one of your projects`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sip`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`The `,_jsx(_components.code,{children:`sip`}),` returned by `,_jsx(_components.a,{href:`/api-reference/build-sip`,children:`Build a SIP`}),` for the same turn. EDN checks the reply’s figures and named roles against it. If omitted, replies that state figures or name who holds a role are not saved`]})]})]})]}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`9`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-light`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#fff`,color:`#24292e`,\"--shiki-dark\":`#24292e`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#6F42C1`},children:`curl`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` -X POST `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"https://api.tensorpro.ai/api/v1/memory/infer\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` -H `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"Authorization: Bearer $EDN_API_KEY\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` -H `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` -d `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`'{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"session_id\": \"chat-42\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"user_message\": \"Who manages the website project?\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"assistant_message\": \"Sara manages the website project.\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"sip\": \"[MEMORY CONTEXT]\\\\n- Sara manages the website project. (USER_STATED)\\\\n- The website relaunch is planned for March. (DOCUMENT_VERIFIED)\\\\n[END MEMORY CONTEXT]\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` }'`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`15`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-light`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#fff`,color:`#24292e`,\"--shiki-dark\":`#24292e`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`15`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#D73A49`},children:`import`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` os`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#D73A49`},children:`import`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` requests`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`resp = requests.post(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"https://api.tensorpro.ai/api/v1/memory/infer\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` headers={`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"Authorization\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: f`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"Bearer {os.environ['EDN_API_KEY']}\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`},`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` json={`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"session_id\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"chat-42\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"user_message\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"Who manages the website project?\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"assistant_message\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"Sara manages the website project.\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"sip\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"[MEMORY CONTEXT]\\\\n- Sara manages the website project. (USER_STATED)\\\\n- The website relaunch is planned for March. (DOCUMENT_VERIFIED)\\\\n[END MEMORY CONTEXT]\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`resp.raise_for_status()`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`print(resp.json())`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`JavaScript`,numberOfLines:`14`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-light`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#fff`,color:`#24292e`,\"--shiki-dark\":`#24292e`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#D73A49`},children:`const`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` resp = `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#D73A49`},children:`await`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` fetch(`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"https://api.tensorpro.ai/api/v1/memory/infer\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` method: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"POST\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` headers: {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` Authorization: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:\"`Bearer ${process.env.EDN_API_KEY}`\"}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"Content-Type\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"application/json\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` body: JSON.stringify({`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"session_id\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"chat-42\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"user_message\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"Who manages the website project?\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"assistant_message\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"Sara manages the website project.\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:` \"sip\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"[MEMORY CONTEXT]\\\\n- Sara manages the website project. (USER_STATED)\\\\n- The website relaunch is planned for March. (DOCUMENT_VERIFIED)\\\\n[END MEMORY CONTEXT]\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` }),`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`});`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`console.log(`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#D73A49`},children:`await`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:` resp.json());`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsx(CodeBlock,{filename:`200 OK`,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-light`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#fff`,color:`#24292e`,\"--shiki-dark\":`#24292e`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:` \"saved\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:`true`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:` \"provenance\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"AI_INFERRED\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:` \"record_id\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"c2e9a7d4-3f1b-4e8a-b6d0-91a5f3c7e284\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:` \"reason\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`saved`})}),_jsx(_components.td,{children:`boolean`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`true`}),` when EDN saved the reply as an `,_jsx(_components.code,{children:`AI_INFERRED`}),` memory`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`provenance`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`How EDN classified the reply: `,_jsx(_components.code,{children:`AI_INFERRED`}),` (it answers a factual question) or `,_jsx(_components.code,{children:`AI_GENERATED`}),` (anything else)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`record_id`})}),_jsx(_components.td,{children:`string or null`}),_jsxs(_components.td,{children:[`Identifier for the saved memory, or `,_jsx(_components.code,{children:`null`}),` when nothing was saved`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`reason`})}),_jsx(_components.td,{children:`string or null`}),_jsxs(_components.td,{children:[`Why nothing was saved: `,_jsx(_components.code,{children:`not_an_answer`}),`, `,_jsx(_components.code,{children:`abstention`}),` or `,_jsx(_components.code,{children:`unsupported_claim`}),`. `,_jsx(_components.code,{children:`null`}),` when `,_jsx(_components.code,{children:`saved`}),` is `,_jsx(_components.code,{children:`true`})]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`important-behavior`,children:`Important behavior`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`AI_INFERRED`}),` memories are never used in a SIP until the user confirms them`]}),` with `,_jsx(_components.a,{href:`/api-reference/confirm-memory-record`,children:`Confirm a memory`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`reason: not_an_answer`})}),` means the reply doesn’t answer a factual question from the user, and `,_jsx(_components.code,{children:`provenance`}),` is `,_jsx(_components.code,{children:`AI_GENERATED`}),`. To keep it anyway, use `,_jsx(_components.a,{href:`/api-reference/generated-round`,children:`Save a generated statement`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`reason: abstention`})}),` means the reply says it doesn’t know.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`reason: unsupported_claim`})}),` means a figure or named role in the reply isn’t backed by the `,_jsx(_components.code,{children:`sip`}),` you sent.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Each call counts toward your daily limit on saving memory`}),`, even when nothing is saved.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`When`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`401`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`UNAUTHORIZED`})}),_jsx(_components.td,{children:`The API key is missing, invalid or revoked`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`404`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`NOT_FOUND`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`project_id`}),` isn’t one of your projects`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`422`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`VALIDATION_ERROR`})}),_jsxs(_components.td,{children:[`A required field is missing or empty, or `,_jsx(_components.code,{children:`session_id`}),` has invalid characters`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`429`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`RATE_LIMITED`})}),_jsxs(_components.td,{children:[`Per-minute or daily limit on saving memory reached. Retry after `,_jsx(_components.code,{children:`Retry-After`}),` seconds`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`500`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INTERNAL_ERROR`})}),_jsx(_components.td,{children:`Something failed on EDN’s side. Retry later`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/reference/errors`,children:`Error handling`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":"github-light"},"config":{},"pageMetadata":{"openapi":"post /api/v1/memory/infer","title":"Classify an assistant reply","description":"Check whether your assistant's reply is a factual answer, and if it is, save it as an unconfirmed fact that the user can confirm later.","href":"/api-reference/infer-round"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[401,405,"ResponseExample,Tabl"],[628,643,"ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!Table)_missingM"],[27481,27909,",`\n`,_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`200`,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-light`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#fff`,color:`#24292e`,\"--shiki-dark\":`#24292e`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:` \"saved\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:`true`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:` \"provenance\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"AI_INFERRED\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:` \"record_id\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"c2e9a7d4-3f1b-4e8a-b6d0-91a5f3c7e284\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:` \"reason\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`200 (not saved)`,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-light`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#fff`,color:`#24292e`,\"--shiki-dark\":`#24292e`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:` \"saved\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:`false`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:` \"provenance\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"AI_INFERRED\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:` \"record_id\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:`null`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#005CC5`},children:` \"reason\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#032F62`},children:`\"unsupported_claim\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#24292E`},children:`}`})}),`\n`]})})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}"]]},"mdxExtracts":{"tableOfContents":[{"title":"What EDN does","slug":"what-edn-does","depth":2,"children":[]},{"title":"Required headers","slug":"required-headers","depth":2,"children":[]},{"title":"Request","slug":"request","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"Important behavior","slug":"important-behavior","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{"response":{"type":"ResponseExample","children":[{"filename":"200","html":"\u003cpre class=\"shiki shiki-themes github-light github-light\" style=\"background-color:#fff;--shiki-dark-bg:#fff;color:#24292e;--shiki-dark:#24292e\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"6\">\u003cspan class=\"line\">\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#005CC5;--shiki-dark:#005CC5\"> \"saved\"\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">: \u003c/span>\u003cspan style=\"color:#005CC5;--shiki-dark:#005CC5\">true\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#005CC5;--shiki-dark:#005CC5\"> \"provenance\"\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">: \u003c/span>\u003cspan style=\"color:#032F62;--shiki-dark:#032F62\">\"AI_INFERRED\"\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#005CC5;--shiki-dark:#005CC5\"> \"record_id\"\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">: \u003c/span>\u003cspan style=\"color:#032F62;--shiki-dark:#032F62\">\"c2e9a7d4-3f1b-4e8a-b6d0-91a5f3c7e284\"\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#005CC5;--shiki-dark:#005CC5\"> \"reason\"\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">: \u003c/span>\u003cspan style=\"color:#005CC5;--shiki-dark:#005CC5\">null\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"200 (not saved)","html":"\u003cpre class=\"shiki shiki-themes github-light github-light\" style=\"background-color:#fff;--shiki-dark-bg:#fff;color:#24292e;--shiki-dark:#24292e\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"6\">\u003cspan class=\"line\">\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#005CC5;--shiki-dark:#005CC5\"> \"saved\"\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">: \u003c/span>\u003cspan style=\"color:#005CC5;--shiki-dark:#005CC5\">false\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#005CC5;--shiki-dark:#005CC5\"> \"provenance\"\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">: \u003c/span>\u003cspan style=\"color:#032F62;--shiki-dark:#032F62\">\"AI_INFERRED\"\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#005CC5;--shiki-dark:#005CC5\"> \"record_id\"\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">: \u003c/span>\u003cspan style=\"color:#005CC5;--shiki-dark:#005CC5\">null\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#005CC5;--shiki-dark:#005CC5\"> \"reason\"\u003c/span>\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">: \u003c/span>\u003cspan style=\"color:#032F62;--shiki-dark:#032F62\">\"unsupported_claim\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#24292E;--shiki-dark:#24292E\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Check whether your assistant's reply is a factual answer, and if it is, save it as an unconfirmed fact that the user can confirm later.","operationId":"infer_round_api_v1_memory_infer_post","requestBody":"4a971081-55b4-42a5-8982-02cca7436560","responses":{"200":"ad02feeb-8898-4fc5-9efc-669b0f49bbd3","401":"afc44676-a459-4ca9-9ea8-6018de87046d","404":"f2752218-52d6-4388-b45e-cee2ef28f299","422":"5d2eb6ed-2ad5-4d5b-8ea7-b1a51914bcb2","429":"eac82d81-9dd8-48a0-a234-453886f9c0dd"},"summary":"Classify an assistant reply","method":"post","type":"path","servers":["89663729-c85d-4dd4-911f-36552656a6ec"],"security":["8e92df6a-14e1-4f0d-895d-efa70acc7589"],"path":"/api/v1/memory/infer","baseUrlOptions":["https://api.tensorpro.ai"],"title":"Classify an assistant reply","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExamples":[{"dropdown":false,"language":"json","code":{"type":"pre","key":null,"ref":null,"props":{"className":"shiki shiki-themes github-light github-light","style":{"backgroundColor":"#fff","--shiki-dark-bg":"#fff","color":"#24292e","--shiki-dark":"#24292e"},"language":"json","children":{"type":"code","key":null,"ref":null,"props":{"language":"json","numberOfLines":"6","children":[{"type":"span","key":"0","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":"{"}}}},"\n",{"type":"span","key":"2","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#005CC5","--shiki-dark":"#005CC5"},"children":" \"saved\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#005CC5","--shiki-dark":"#005CC5"},"children":"true"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":","}}]}},"\n",{"type":"span","key":"4","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#005CC5","--shiki-dark":"#005CC5"},"children":" \"provenance\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#032F62","--shiki-dark":"#032F62"},"children":"\"AI_INFERRED\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":","}}]}},"\n",{"type":"span","key":"6","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#005CC5","--shiki-dark":"#005CC5"},"children":" \"record_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#032F62","--shiki-dark":"#032F62"},"children":"\"c2e9a7d4-3f1b-4e8a-b6d0-91a5f3c7e284\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":","}}]}},"\n",{"type":"span","key":"8","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#005CC5","--shiki-dark":"#005CC5"},"children":" \"reason\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#005CC5","--shiki-dark":"#005CC5"},"children":"null"}}]}},"\n",{"type":"span","key":"10","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":"}"}}}},"\n"]}}}},"filename":"200"},{"dropdown":false,"language":"json","code":{"type":"pre","key":null,"ref":null,"props":{"className":"shiki shiki-themes github-light github-light","style":{"backgroundColor":"#fff","--shiki-dark-bg":"#fff","color":"#24292e","--shiki-dark":"#24292e"},"language":"json","children":{"type":"code","key":null,"ref":null,"props":{"language":"json","numberOfLines":"6","children":[{"type":"span","key":"0","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":"{"}}}},"\n",{"type":"span","key":"2","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#005CC5","--shiki-dark":"#005CC5"},"children":" \"saved\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#005CC5","--shiki-dark":"#005CC5"},"children":"false"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":","}}]}},"\n",{"type":"span","key":"4","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#005CC5","--shiki-dark":"#005CC5"},"children":" \"provenance\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#032F62","--shiki-dark":"#032F62"},"children":"\"AI_INFERRED\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":","}}]}},"\n",{"type":"span","key":"6","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#005CC5","--shiki-dark":"#005CC5"},"children":" \"record_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#005CC5","--shiki-dark":"#005CC5"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":","}}]}},"\n",{"type":"span","key":"8","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#005CC5","--shiki-dark":"#005CC5"},"children":" \"reason\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#032F62","--shiki-dark":"#032F62"},"children":"\"unsupported_claim\""}}]}},"\n",{"type":"span","key":"10","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#24292E","--shiki-dark":"#24292E"},"children":"}"}}}},"\n"]}}}},"filename":"200 (not saved)"}],"responseExampleType":"mdx"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"properties":{"assistant_message":{"description":"How the assistant replied.","examples":["Sara manages the website project."],"minLength":1,"title":"Assistant Message","type":"string","isRequired":true,"uniqueKey":"assistant_message","typeLabel":"string"},"session_id":{"description":"Which chat this belongs to.","examples":["chat-42"],"maxLength":128,"minLength":1,"title":"Session Id","type":"string","isRequired":true,"uniqueKey":"session_id","typeLabel":"string"},"user_message":{"description":"What the user said.","examples":["Who manages the website project?"],"minLength":1,"title":"User Message","type":"string","isRequired":true,"uniqueKey":"user_message","typeLabel":"string"},"project_id":{"oneOf":[{"type":"string","title":"Project Id","description":"Which project/workspace this belongs to. Leave it out for a regular chat.","uniqueKey":"project_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Project Id","description":"Which project/workspace this belongs to. Leave it out for a regular chat.","uniqueKey":"project_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"project_id","typeLabel":"string | null"},"sip":{"oneOf":[{"type":"string","title":"Sip","description":"The background info/evidence that was given to the assistant when it wrote its answer. EDN uses this to check if any specific facts in the answer are actually backed up. Without it, factual claims can't be verified.","example":"[MEMORY CONTEXT]\n- Sara manages the website project. (USER_STATED)\n[END MEMORY CONTEXT]","uniqueKey":"sip.oneOf.0","typeLabel":"string"},{"type":"null","title":"Sip","description":"The background info/evidence that was given to the assistant when it wrote its answer. EDN uses this to check if any specific facts in the answer are actually backed up. Without it, factual claims can't be verified.","example":"[MEMORY CONTEXT]\n- Sara manages the website project. (USER_STATED)\n[END MEMORY CONTEXT]","uniqueKey":"sip.oneOf.1","typeLabel":"null"}],"uniqueKey":"sip","typeLabel":"string | null"}},"required":["user_message","assistant_message","session_id"],"title":"InferRoundRequest","type":"object","uniqueKey":"","typeLabel":"InferRoundRequest · object"},"examples":{"Example":{"title":"Example","value":{"assistant_message":"Sara manages the website project.","session_id":"chat-42","user_message":"Who manages the website project?","project_id":"\u003cstring>","sip":"[MEMORY CONTEXT]\n- Sara manages the website project. (USER_STATED)\n[END MEMORY CONTEXT]"}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"ad02feeb-8898-4fc5-9efc-669b0f49bbd3":{"content":{"application/json":{"schema":{"properties":{"provenance":{"description":"How EDN classified the answer. AI_INFERRED: it answers a factual question the user asked. AI_GENERATED: anything else, such as a suggestion or general conversation.","enum":["AI_INFERRED","AI_GENERATED"],"title":"Provenance","type":"string","isRequired":true,"uniqueKey":"provenance","typeLabel":"enum\u003cstring>"},"reason":{"oneOf":[{"type":"string","title":"Reason","description":"Why nothing was saved, when saved is false. not_an_answer: the reply doesn't answer a factual question from the user. abstention: the reply says it doesn't know. unsupported_claim: a fact in the reply isn't backed by the sip you sent. Null when saved is true.","enum":["not_an_answer","abstention","unsupported_claim"],"isRequired":true,"uniqueKey":"reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Reason","description":"Why nothing was saved, when saved is false. not_an_answer: the reply doesn't answer a factual question from the user. abstention: the reply says it doesn't know. unsupported_claim: a fact in the reply isn't backed by the sip you sent. Null when saved is true.","isRequired":true,"uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"reason","typeLabel":"enum\u003cstring> | null"},"record_id":{"oneOf":[{"type":"string","title":"Record Id","description":"The ID of the saved memory when saved is true, otherwise null.","isRequired":true,"uniqueKey":"record_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Record Id","description":"The ID of the saved memory when saved is true, otherwise null.","isRequired":true,"uniqueKey":"record_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"record_id","typeLabel":"string | null"},"saved":{"description":"true when EDN saved the answer as an AI_INFERRED memory.","title":"Saved","type":"boolean","isRequired":true,"uniqueKey":"saved","typeLabel":"boolean"}},"required":["saved","provenance","record_id","reason"],"title":"InferResponse","type":"object","uniqueKey":"","typeLabel":"InferResponse · object"},"examples":{"Example":{"title":"Example","value":{"provenance":"AI_INFERRED","reason":"not_an_answer","record_id":"\u003cstring>","saved":true}}},"exampleType":"generated"}},"description":"Successful Response","exampleType":"generated"},"afc44676-a459-4ca9-9ea8-6018de87046d":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"A stable error code, e.g. NOT_FOUND. Also sent in the X-EDN-Error-Code header.","title":"Code","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"description":"What went wrong, in plain language.","title":"Detail","type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"required":["detail","code"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","detail":"\u003cstring>"}}},"exampleType":"generated"}},"description":"The API key is missing, invalid, revoked or expired.","exampleType":"generated"},"f2752218-52d6-4388-b45e-cee2ef28f299":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"A stable error code, e.g. NOT_FOUND. Also sent in the X-EDN-Error-Code header.","title":"Code","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"description":"What went wrong, in plain language.","title":"Detail","type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"required":["detail","code"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","detail":"\u003cstring>"}}},"exampleType":"generated"}},"description":"The resource does not exist or does not belong to you.","exampleType":"generated"},"5d2eb6ed-2ad5-4d5b-8ea7-b1a51914bcb2":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"A stable error code, e.g. NOT_FOUND. Also sent in the X-EDN-Error-Code header.","title":"Code","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"description":"What went wrong, in plain language.","title":"Detail","type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"errors":{"description":"One entry per invalid field.","items":{"properties":{"field":{"description":"The request field with the problem, e.g. session_id.","title":"Field","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"description":"What is wrong with it.","title":"Message","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"required":["field","message"],"title":"FieldError","type":"object","uniqueKey":"errors.items.[INDEX]","typeLabel":"FieldError · object"},"title":"Errors","type":"array","isRequired":true,"uniqueKey":"errors","typeLabel":"FieldError · object[]"}},"required":["detail","code","errors"],"title":"ValidationErrorResponse","type":"object","uniqueKey":"","typeLabel":"ValidationErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","detail":"\u003cstring>","errors":[{"field":"\u003cstring>","message":"\u003cstring>"}]}}},"exampleType":"generated"}},"description":"A request field is missing or invalid. errors lists each problem.","exampleType":"generated"},"eac82d81-9dd8-48a0-a234-453886f9c0dd":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"A stable error code, e.g. NOT_FOUND. Also sent in the X-EDN-Error-Code header.","title":"Code","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"description":"What went wrong, in plain language.","title":"Detail","type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"required":["detail","code"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","detail":"\u003cstring>"}}},"exampleType":"generated"}},"description":"A rate limit or your daily quota was reached. Wait for the number of seconds in the Retry-After header, then retry.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"exampleType":"generated"}},"security":{"8e92df6a-14e1-4f0d-895d-efa70acc7589":{"EDNApiKey":{"description":"Your EDN API key, sent as `Bearer YOUR_API_KEY`. Create keys in the Console.","scheme":"bearer","type":"http","scopes":[],"schemeName":"EDNApiKey"}}},"servers":{"89663729-c85d-4dd4-911f-36552656a6ec":{"description":"EDN evaluation endpoint","url":"https://api.tensorpro.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"description":"Your EDN API key, sent as `Bearer YOUR_API_KEY`. Create keys in the Console.","scheme":"bearer","type":"http","scopes":[],"schemeName":"EDNApiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Your EDN API key, sent as `Bearer YOUR_API_KEY`. Create keys in the Console.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"EDNApiKey","name":"Authorization"}],"title":"EDNApiKey"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"tensor-pro","siteName":"EDN","title":"Classify an assistant reply - EDN","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-13T05:39:15.065Z","originalFileLocation":"api-reference/infer-round.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Check whether your assistant\u0026#x27;s reply is a factual answer, and if it is, save it as an unconfirmed fact that the user can confirm later.\">\u003cmeta data-mint-head name=\"application-name\" content=\"EDN\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tensor-pro/apsIfYQrkaP2SbwB/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/tensor-pro/apsIfYQrkaP2SbwB/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tensor-pro/apsIfYQrkaP2SbwB/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tensor-pro/apsIfYQrkaP2SbwB/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tensor-pro/apsIfYQrkaP2SbwB/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tensor-pro/apsIfYQrkaP2SbwB/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tensor-pro/apsIfYQrkaP2SbwB/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tensor-pro/apsIfYQrkaP2SbwB/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tensor-pro/apsIfYQrkaP2SbwB/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Classify an assistant reply - EDN\">\u003cmeta data-mint-head property=\"og:description\" content=\"Check whether your assistant\u0026#x27;s reply is a factual answer, and if it is, save it as an unconfirmed fact that the user can confirm later.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"EDN\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tensorpro.ai/api-reference/infer-round\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tensor-pro.mintlify.site/_mintlify/api/og/v2?division=Save+memory\u0026amp;title=Classify+an+assistant+reply\u0026amp;description=Check+whether+your+assistant%27s+reply+is+a+factual+answer%2C+and+if+it+is%2C+save+it+as+an+unconfirmed+fact+that+the+user+can+confirm+later.\u0026amp;theme=b95e27d968327e863e1b8ee0\u0026amp;signature=9b4125e38f26b24eb84e6afc2bd3a4e86f1a1d16c0fcb2f9832d96c8863fbb4f\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Classify an assistant reply - EDN\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Check whether your assistant\u0026#x27;s reply is a factual answer, and if it is, save it as an unconfirmed fact that the user can confirm later.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tensor-pro.mintlify.site/_mintlify/api/og/v2?division=Save+memory\u0026amp;title=Classify+an+assistant+reply\u0026amp;description=Check+whether+your+assistant%27s+reply+is+a+factual+answer%2C+and+if+it+is%2C+save+it+as+an+unconfirmed+fact+that+the+user+can+confirm+later.\u0026amp;theme=b95e27d968327e863e1b8ee0\u0026amp;signature=9b4125e38f26b24eb84e6afc2bd3a4e86f1a1d16c0fcb2f9832d96c8863fbb4f\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/tensor-pro/apsIfYQrkaP2SbwB/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"EDN\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00ADE4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tensorpro.ai/api-reference/infer-round\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/infer-round.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.tensorpro.ai/#organization\",\"name\":\"EDN\",\"url\":\"https://docs.tensorpro.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tensor-pro/AWOd-GOQzhH77YoI/logo/Logo_5_05.png?fit=max\u0026auto=format\u0026n=AWOd-GOQzhH77YoI\u0026q=85\u0026s=a774ff4824e8db2cc8869867a69e2868\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tensorpro.ai#website\",\"name\":\"EDN\",\"url\":\"https://docs.tensorpro.ai\",\"publisher\":{\"@id\":\"https://docs.tensorpro.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tensorpro.ai/api-reference/infer-round#webpage\",\"url\":\"https://docs.tensorpro.ai/api-reference/infer-round\",\"name\":\"Classify an assistant reply\",\"description\":\"Check whether your assistant's reply is a factual answer, and if it is, save it as an unconfirmed fact that the user can confirm later.\",\"dateModified\":\"2026-11-13T05:39:15.065Z\",\"isPartOf\":{\"@id\":\"https://docs.tensorpro.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tensorpro.ai/api-reference/infer-round#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tensorpro.ai/api-reference/infer-round#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Save memory\",\"item\":\"https://docs.tensorpro.ai/api-reference/ingest-round\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Classify an assistant reply\",\"item\":\"https://docs.tensorpro.ai/api-reference/infer-round\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.tensorpro.ai/api-reference/infer-round#apireference\",\"headline\":\"Classify an assistant reply\",\"name\":\"Classify an assistant reply\",\"description\":\"Check whether your assistant's reply is a factual answer, and if it is, save it as an unconfirmed fact that the user can confirm later.\",\"url\":\"https://docs.tensorpro.ai/api-reference/infer-round\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tensorpro.ai/api-reference/infer-round#webpage\"},\"dateModified\":\"2026-11-13T05:39:15.065Z\",\"publisher\":{\"@id\":\"https://docs.tensorpro.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tensorpro.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"EDN\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"EDN\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/infer-round.md","siteName":"EDN","nav":{"global":null,"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":""}]},{"tab":"Developer Docs","pages":[{"title":"Developer Docs","href":"/introduction"}]},{"tab":"Console","pages":[{"title":"Console","href":"/console/overview"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"Overview","href":"/api-reference/overview"}]},{"group":"Save memory","pages":[{"openapi":"post /api/v1/memory/ingest","title":"Save a conversation turn","description":"Save one turn of a conversation, the user's message and your assistant's reply, so EDN can remember what was said. Call it after every turn.","href":"/api-reference/ingest-round"},{"openapi":"post /api/v1/memory/infer","title":"Classify an assistant reply","href":"/api-reference/infer-round"},{"openapi":"post /api/v1/memory/generated","title":"Save a generated statement","description":"Save something your assistant said that isn't an answer to a question, such as a suggestion or a draft, as an AI_GENERATED memory. It is never used in a SIP until the user confirms it with `POST /api/v1/memory/confirm`. Counts against your daily ingest quota.","href":"/api-reference/generated-round"},{"openapi":"post /api/v1/memory/confirm","title":"Confirm a memory","href":"/api-reference/confirm-memory-record"}]},{"group":"Manage memory","pages":[{"openapi":"get /api/v1/memory/records","title":"List memories","href":"/api-reference/list-memory-records"},{"openapi":"get /api/v1/memory/records/{record_id}","title":"Get a memory","href":"/api-reference/get-memory-record"},{"openapi":"patch /api/v1/memory/records/{record_id}","title":"Edit a memory","href":"/api-reference/edit-memory-record"},{"openapi":"get /api/v1/memory/records/{record_id}/history","title":"Get a memory's history","href":"/api-reference/memory-record-history"},{"openapi":"delete /api/v1/memory/records/{record_id}","title":"Delete a memory","href":"/api-reference/delete-memory-record"}]},{"group":"Retrieve","pages":[{"openapi":"post /api/v1/sip/build","title":"Build a SIP","href":"/api-reference/build-sip"},{"openapi":"get /api/v1/retrieval/search","title":"Search memories","href":"/api-reference/search"}]},{"group":"Documents","pages":[{"openapi":"post /api/v1/document/ingest","title":"Upload a document","href":"/api-reference/ingest-document"},{"openapi":"get /api/v1/projects/{project_id}/sources","title":"List project documents","href":"/api-reference/list-project-sources"},{"openapi":"delete /api/v1/projects/{project_id}/sources/{source_id}","title":"Remove a project document","href":"/api-reference/remove-project-source"}]},{"group":"Projects","pages":[{"openapi":"get /api/v1/projects","title":"List projects","href":"/api-reference/list-projects"},{"openapi":"post /api/v1/projects","title":"Create a project","href":"/api-reference/create-project"},{"openapi":"patch /api/v1/projects/{project_id}","title":"Rename a project","href":"/api-reference/update-project"},{"openapi":"delete /api/v1/projects/{project_id}","title":"Delete a project","href":"/api-reference/delete-project"}]},{"group":"Sessions","pages":[{"openapi":"get /api/v1/sessions","title":"List sessions","href":"/api-reference/list-sessions"},{"openapi":"post /api/v1/sessions","title":"Create a session","href":"/api-reference/create-session"},{"openapi":"patch /api/v1/sessions/{session_id}","title":"Rename a session","href":"/api-reference/update-session"},{"openapi":"delete /api/v1/sessions/{session_id}","title":"Delete a session","href":"/api-reference/delete-session"},{"openapi":"patch /api/v1/sessions/{session_id}/project","title":"Move a session to a project","href":"/api-reference/assign-session-project"},{"openapi":"get /api/v1/sessions/{session_id}/messages","title":"List session messages","href":"/api-reference/list-session-messages"},{"openapi":"post /api/v1/sessions/{session_id}/messages","title":"Add a message to a session","href":"/api-reference/append-session-message"}]},{"group":"System","pages":[{"openapi":"get /api/v1/health","title":"Check API health","href":"/api-reference/health-check"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Classify an assistant reply - EDN","buildId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","deploymentId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-NXj-Rqjv.js","utils-m0thOP-_.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D13EKcfm.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema--XTdfsEb.js","snippetPresets-D3s4lmAH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-ChURybxL.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DL8CiXq2.js","shallow-DI2-YB2E.js","getApiPlaygroundDisplay-DxbW7b_y.js","CodeSnippet-CiNYS0pP.js","CodeSnippets-BT87bThu.js","Page-DSpdRuhM.js","getPastedJson-F_g_IrFQ.js","icon-CCIG5BAs.js","MethodPill-DY3E0jwx.js","DuplicateIcon-BN88xnEg.js","createIcon-VCCc5HO5.js","DynamicMarkdown-CaSwclgK.js","SectionHeading-DXV8nWhc.js","axios-vUo_bRtp.js","Markdown-CV32Re6G.js","clsx-5ydLOnhV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-pFDdfjRe.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BUGO5bPJ.js"]}