> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getbased.health/llms.txt
> Use this file to discover all available pages before exploring further.

# AI chat for lab result interpretation

> Ask questions about your labs without pasting results manually. getbased sends the AI the relevant profile context when you chat.

The AI chat panel is a streaming conversation window built into getbased. It is also the main guided path for fresh profiles: after the first-visit tour, chat helps you decide what to add first and routes you to import, setup, or profile context only when needed. Every message you send automatically includes a snapshot of the profile context you have enabled.

<Info>
  Want to know what is sent with a message? [See what chat asks AI and what it can include](/guides/ai-prompts#when-you-send-a-chat-message). The same guide explains app-written **Ask AI** messages.
</Info>

## Open the chat

Click the **chat bubble** on desktop or the mobile chat button on smaller screens. On a fresh profile, the first-visit tour opens guided chat when it finishes. Returning desktop users with an empty profile may also see chat open automatically beside the welcome screen.

On desktop, the panel slides open beside the current view so charts, cards, and lenses remain usable while chat is open.

Drag the chat panel's edge to resize it, or drag the divider beside the conversation list to resize that list. The dashboard adjusts alongside the panel rather than being covered by the resized chat. Width preferences are kept on this device and clamped to the available screen space.

To expand the chat to full screen, click the **⛶** button in the chat header. Click it again to return to side-by-side mode. Your preference is saved between sessions.

Press **Escape** to close the panel.

<Note>
  If no AI provider is configured, chat offers setup choices. **Connect with OpenRouter** uses OAuth; **CLI agents** lets you connect an installed agent through Companion. See [AI provider setup](/ai-providers) and [CLI agents](/guides/cli-agents).
</Note>

## Write and recover a draft

The message box grows as you type, then becomes scrollable for very long prompts. Press **Enter** to send or **Shift+Enter** for a new line. On phones, the composer stays above the software keyboard and uses larger touch targets.

getbased saves the unfinished text separately for each conversation. You can switch conversations, close chat, or reload the page and return to the same draft. Sending the message or deleting its conversation clears that draft.

Drafts are device-local: they do not sync to another device and are not included in backups or exports. When [local encryption](/guides/encryption) is enabled, draft storage is encrypted with the rest of the sensitive profile data.

## Talk and listen in chat

The **+** menu groups **Add photos**, **Import health file**, and **Manage AI context**. The model picker sits beside the microphone: search the active provider's catalog and change supported reasoning effort without opening Settings. Model changes appear immediately for the next request; previous replies keep their recorded provider/model identity.

Tap the **microphone** beside the composer to dictate a message. Tap it again to stop; getbased places the transcript in the composer so you can review and edit it before sending.

Choose **Listen** under an assistant reply to hear it read aloud, or enable automatic reading in **Settings → Voice**. Voice can run with downloaded on-device models, an OpenAI-compatible voice server, xAI, or ElevenLabs. You can also use separate services for dictation and listening.

Voice processing is independent from the AI provider that generates the reply. See [Use voice in AI chat](/guides/voice) for setup, model downloads, provider choices, and privacy boundaries.

## What the AI knows

Every message includes enabled context from your current profile. You never need to paste results into the chat, but you do control which stored sources are allowed to shape answers: open **Insight → Manage → Context → Data sources**.

| Context source | What it can send | Control |
| - | - | - |
| Lab results | Biomarker values, supplied comparison ranges and statuses, trends, Biology Score context, marker notes, and flagged-result summaries | **Labs → Blood marker results**. Imported specialty lab groups can be excluded one group at a time. |
| Insight Context Cards | Goals, medical history, biometrics, cycle context, diet and explicit digestive answers, exercise, sleep, light and skin type, stress, relationships, environment, EMF assessment, notes, and change timeline | **Insight → Manage → Context → Insight Context Cards** |
| Supplements & medications | Current and relevant historical periods, personal regimen, active ingredients, separate excipient/capsule details, scoped quality evidence, mitochondrial evidence, and supplement-impact context | **Insight → Manage → Context → Data sources** |
| Wearables | HRV, sleep, resting pulse, recovery, body metrics, trends, and recent anomaly summaries | **Body → Wearable recovery context** |
| DNA context | APOE/mtDNA summary, compact priority findings with association/evidence/relevance labels, and optional Other SNP lookup inventory | **Genome** switches for each tier |
| Light & Sun | Sun sessions, device sessions, indoor light environment, light-tool warnings, and light-related score modifiers | **Light & Sun → Light & Sun context** |
| Interpretive lens and Knowledge Base | Your preferred reasoning lens and optional document retrieval | **Answer grounding** cards in **Manage → Context** |

Turning a source off does not delete the data. It stops that source from influencing in-app AI chat, Biology Score context, and source-driven warnings until you turn it back on.

### How chat handles marker ranges

For an ordinary marker question, chat is instructed to lead with the main takeaway instead of listing every possible range. It starts from the range and status supplied by getbased, but it must not present that frame as universal medical truth.

If a laboratory reference interval and a supplied optimal band lead to different conclusions, the answer should normally compress the distinction into one sentence—for example, “within the lab range but above getbased optimal guidance.” Other published thresholds should appear only when you ask about alternatives or when they materially change a safety-relevant interpretation. When Web or Knowledge Base evidence is available, chat should identify the outside source rather than describe an uncited number as a “model range.”

You can ask for more detail at any time: “Compare the supplied ranges,” “Why is this optimal band narrower?” or “Show me published thresholds and their sources.”

Routine Genome context is intentionally compact. It can include up to 12 ranked priority findings, while long per-SNP claim scope and interpretation text stays out of ordinary requests. Choosing **Ask AI** on a Genome finding opens a focused, editable prompt with that SNP's evidence grade, relevance, supported claim, interpretation context, and publication links. The selected model can use broader knowledge, but the prompt asks it to distinguish established evidence from inference.

Supplement and medication context is deliberately bounded. Normal questions prioritize current items and history that overlaps the visible lab range; a therapy-specific question can include additional matching history within the context limit. Compact context keeps high-signal quality findings, while detailed context may also include methods and reporting limits. Each imported quality result has its own **Include in AI** control. Passing duplicate potency checks default off, while failures remain visible by default.

See [Track supplements and medications](/guides/supplements-medications) for lifecycle, import, and laboratory-evidence details.

## Current Focus

The **Current Focus** card appears on the dashboard and in the Insight lens. It shows a one-to-three sentence AI-generated insight drawn from your recent lab trends, health goals, conditions, supplements, and enabled profile context. It gives you an orientation before you start typing and updates when your data changes.

<Tip>
  Use Current Focus as a starting point. Click **Ask AI** next to a finding or open chat from any view to ask a follow-up about that specific marker or recommendation.
</Tip>

## AI personalities

The AI adapts its communication style based on the personality you choose. Switch personalities using the selector in the chat header.

<AccordionGroup>
  <Accordion title="AI Lab Analyst">
    A clear, evidence-informed tone. Explains markers plainly, notes trends, and flags concerns without drama.
  </Accordion>

  <Accordion title="Dr. Gregory House">
    A sharp, skeptical clinician who asks uncomfortable questions. Pushes back on assumptions and digs for root causes.
  </Accordion>

  <Accordion title="Custom">
    Choose **+ New Personality** to open the custom persona editor. Enter a person, archetype, or communication style, then click **Generate draft** for an AI-written starting point—or write the persona instructions yourself. Review and edit the full instructions before you click **Save persona**.

    Custom personas are saved per profile. They persist across refreshes, full backups and profile JSON exports, and optional encrypted Sync. If local encryption is enabled, their instructions are encrypted at rest. Deletions also sync, so an older copy on another device does not silently recreate a persona you removed.
  </Accordion>
</AccordionGroup>

On the official hosted app, saving a custom persona requires you to acknowledge that it is an AI-generated interpretation, not the real person or an endorsement, and that you will not use it to impersonate someone. Self-hosted deployments show the same responsibility notice without requiring the hosted-site checkbox.

Each conversation remembers its selected personality. A new conversation starts with **AI Lab Analyst**.

## Discussion mode

Once a conversation has an assistant reply, choose the discussion button to add another perspective. Your current personality stays selected and you choose one additional participant. The participants then answer in a predictable sequence and remain attached to that conversation; you can add another participant later.

The picker tells you how many AI responses will run now and on future messages. Each participant is a separate provider request and can create a separate charge. During a round, chat shows whose turn it is and the current position. You can **Pause round**, **Resume** the remaining participants, or retry one failed participant without rerunning responses that already completed.

## Conversations, search, edits, and forks

The chat panel has a conversation rail listing past chats. Each conversation is named automatically from your first message, and you can rename or delete it from the rail.

* Start a neutral conversation at any time with **New Chat**
* Switch between threads without losing history
* Search conversation names and message text; selecting a result opens the conversation, reveals older history when needed, and highlights the match
* Use **Jump to latest** when you have scrolled away from new streaming content
* Long conversations initially render the latest 120 stored messages; choose **Show earlier messages** to reveal the preceding batch without losing your scroll position

On mobile, tap the hamburger icon in the chat header to open the thread list.

Conversations are not automatically deleted when you create new ones. Delete conversations you no longer want from the rail.

Create a project in the conversation list to group a topic. Drag a conversation onto the project's heading/group, or use the conversation menu's existing project choices when using a keyboard or touch. Drag to **Drop here for no project** to remove the grouping. Project menus offer **Rename project** and **Delete project**; deleting a project keeps its conversations outside the project. Moving a pinned chat into a project removes its separate pinned placement.

Projects are conversation organization, not filesystem folders or extra AI instructions. Their names and membership are stored with the profile's conversation index, included in chat exports/backups and optional encrypted Sync. Local storage follows your data-protection setting; grouping chats does not turn encryption on by itself.

Every assistant reply has **Fork to new chat**. A fork copies the conversation through that reply, keeps the original unchanged, and shows a link back to the source conversation.

Your latest text-only question has **Edit**. Saving the inline edit sends the revised question again and replaces its following response in the current conversation. Earlier questions should be forked instead, and messages with images cannot be edited because the original full-size attachments may no longer be available. User messages no longer repeat separate copy and retry buttons; assistant replies retain their response actions.

<Tip>
  Starting a new conversation is the single biggest way to reduce history-related token costs. A fresh conversation still includes your enabled profile context, but it does not send messages from an older conversation.
</Tip>

## Photos and health-file imports

Attach images to any chat message — photos of lab reports, supplement labels, food logs, or anything else you want the AI to see.

**Three ways to attach:**

<Steps>
  <Step title="Use the plus menu">
    Choose **+ → Add photos** to attach an image, or **Import health file** to open the reviewed import workflow.
  </Step>

  <Step title="Paste from clipboard">
    Press **Ctrl+V** (or **Cmd+V** on Mac) to paste an image directly.
  </Step>

  <Step title="Drag and drop">
    Drop files over the chat conversation or input area. Supported images become attachments when the selected chat model can see images; other files enter the regular import workflow.
  </Step>
</Steps>

Direct chat accepts up to **5 images per message**; CLI chat accepts up to **4**. The combined limit is **18 MB**. Supported image formats are JPEG, PNG, GIF, and WebP. The selected model and adapter must report image support.

There is no HD toggle. Chat sends original image bytes and dimensions within the size limit; prepare a smaller or redacted copy yourself when needed. Only small thumbnails are retained in chat history, not the original full-resolution image files.

PDFs, spreadsheets, and text exports are routed to getbased's existing import handlers, not sent as arbitrary agent file attachments. The file still needs to be supported by that importer, and extracted health records go through the normal review before saving. [Read about lab import](/guides/pdf-import).

<Note>
  Original chat images may contain EXIF metadata such as location or camera information as well as visible personal details. Chat does not strip that metadata. Remove it or redact the image before attaching if you do not want to share it with the selected provider/agent.
</Note>

<Warning>
  If the browser cannot read a native dropped file, getbased offers a file-picker recovery dialog. Choose the file through **+** instead. Operating-system/browser drag-and-drop permissions can differ, so a working file picker does not prove native dragging will work on every platform.
</Warning>

## Web search

Toggle **Web** in the chat header to let the AI search the internet before responding. This is useful for questions about recent studies, drug interactions, or supplement research where up-to-date information matters.

<Warning>
  Web search injects search results into the AI's context, significantly increasing input tokens. Expect messages to cost **2–4× more** than normal. The cost footnote shows a 🌐 indicator when search was active.
</Warning>

<Note>
  Web search is available with **OpenRouter**, **PPQ**, and **Venice**. The toggle is hidden when you are using other providers. If **PPQ Private TEE Mode** or **Venice Encrypted TEE Mode** is active, web search is disabled so encrypted/private prompts are not sent into external search tooling.
</Note>

CLI agents can use their adapter's supported web tools independently of this direct-provider toggle. Personal gateways use their own tool policy. This does not give a local agent general browser, shell, or filesystem control through getbased. See [agent capabilities](/guides/cli-agents#what-works-through-an-agent).

## Read the encrypted-chat badge

When a private or encrypted provider mode is selected, the chat header shows a lock beside the model name. A plain **🔒** means the mode is selected but a verified session has not yet supplied details. After Venice establishes a session, **🔒 TEE + GPU** means the required Intel confidential-computing and NVIDIA GPU checks both passed. **🔒 failed** means a required check failed and the encrypted request was stopped.

Hover, focus, or tap a labeled badge to see what was checked and what the result does not establish. For Venice, the details name the underlying DCAP and NRAS checks and explain that independently valid TEE and GPU evidence does not prove that both ran together. The badge describes the connection used for that chat; it is not a general claim that the provider's code is free of defects.

See [Privacy and data handling](/guides/privacy#venice-encrypted-tee-mode) for what remains visible and [TEE attestation and encrypted AI transport](/developers/tee-attestation#venice-encrypted-tee-mode) for the technical verification flow.

## Stop, retry, and continue responses

While the AI is generating a response, a **Stop** button appears in the chat input area. Click it to halt generation mid-stream — useful when the AI is heading in the wrong direction and you want to rephrase your question.

The partial response is saved and marked **\[stopped]**. Choose **Retry** to replace that response by sending the same question again, or use **Edit** on your latest text-only question to change it first.

Before the first response text arrives, short waiting phrases rotate. They are presentation cues, not a record of tools actually running. Your profile avatar identifies your messages; an agent icon or selected persona identifies the assistant. Custom personas and discussion participants retain their names, while the default analyst label is not repeated above every reply.

For direct-provider chat, when a provider ends an otherwise incomplete response at its output limit, getbased can ask it to continue up to two times and join the parts into one message. If the result is still truncated, chat marks it **\[output limit reached]** and you can send “continue” yourself. CLI execution follows the adapter's own completion behavior.

## Helpful suggestions

When an answer has related recommendations, it shows a collapsed **See helpful suggestions** row. New or changed suggestion areas get a short **New** cue, but the row does not automatically reopen after every response. Expand it only when you want those options.

## Health context and AI features

Not everything you see in getbased is AI-generated. Understanding the distinction helps you trust the numbers.

### What the AI generates

* Chat responses and interpretations
* Current Focus insights
* Per-card profile summaries, health dots, and tips
* Biology Score explanation text when you click **Explain this score**
* PDF lab import parsing
* Custom personality profiles

### What is deterministic (not AI)

| Feature | How it works |
| - | - |
| Reference ranges on charts | Directly from your lab report PDF or your own overrides — never generated by an LLM |
| Trend alerts ("dropped 25%") | Linear regression and slope thresholds in deterministic code |
| PhenoAge biological age | Levine 2018 closed-form formula over 9 biomarkers |
| Calculated markers (HOMA-IR, BUN/Creatinine, Free Water Deficit) | Published mathematical formulas |
| Biology Scores and Biological Coherence | Deterministic score engine over marker values, exact ranges, recency, coverage, and profile context; AI can explain the result but does not compute it |
| Channel doses in Light | Bird-Riordan spectrum reconstruction — reproducible photobiology math |

## Knowledge base grounding

If you have connected a knowledge base, the chat automatically retrieves the most relevant passages from your documents before each response. A badge in the chat header shows the active library name when this is running.

See [Connect a custom knowledge base](/guides/knowledge-base) for setup instructions.

## Token costs

Every message sends your enabled profile context plus recent eligible conversation history. The chat header shows the name of your active model, and each AI response includes a footnote with the estimated token cost for that exchange.

| Component | Typical size |
| - | - |
| System prompt | \~1,300 tokens |
| Lab context | 2,000–15,000 tokens (grows with draw dates and filled cards) |
| Conversation history | 0–10,000+ tokens (up to the last 30 eligible messages) |
| Image (current message only) | 1,000–5,000 tokens per image |

<Tip>
  **Cost-saving tips:**

  * Start new threads often — resetting history is the biggest lever
  * Crop or reduce an image yourself if a smaller input is sufficient
  * Run a downloaded model on your own hardware through Ollama, LM Studio, Unsloth Studio, or another compatible server for chat without provider fees
  * Venice offers free-tier models with no per-token charges
</Tip>

The **Local AI** connection can also point to a LAN server, remote compatible endpoint, or cloud-tagged model. Those setups may send chat content off-device and may have provider costs. Check the execution-location message in **Settings → AI**; see [Connect an AI provider](/ai-providers) for details.

<Info>
  To browse the instructions behind chat and every focused AI feature, see [What getbased asks AI](/guides/ai-prompts). Maintainers and reviewers can use the linked [system prompt catalog](/developers/system-prompts) for source locations and change-review guidance.
</Info>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.