Skip to content
slow-stackPublic

About

melete 负责交谈,mneme 负责记住——带长期记忆的 DeepSeek 聊天端(官方 chat-demo fork)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

Melete

English | 简体中文

Melete is a fork of DeepSeek's official chat-demo wired to dsh-mneme long-term memory — melete talks, mneme remembers: a local companion service injects the profile and memories recalled from /context into each turn's system prompt, then distills and writes back after the reply. Chat source stays untouched, so upstream changes merge cleanly; chat keeps working without memory (fail-open), and the mneme token never leaves the local service process.

export MELETE_MNEME_TOKEN=<mneme external API token>
pnpm melete        # local companion service (proxy + injection + distillation)
pnpm melete:dev    # dev server (or pnpm melete:build + pnpm melete for static hosting)

Memory architecture, behavior contracts and configuration live in server/README.md. What follows is the upstream chat-demo README, kept as is.

A static chat demo powered by the DeepSeek API. No application backend is required: the browser connects directly to the configured API service.

You can try the app online or download the archive from Releases, extract it, and double-click index.html to use it locally without installation or a build. Enter your API key in Settings before your first chat.

Getting started

Install Node.js 22.12+ and pnpm, then run:

git clone https://github.com/deepseek-ai/chat-demo.git
cd chat-demo
pnpm install
pnpm dev

Open http://localhost:8090.

To build the static site:

pnpm build

The output is written to dist/. Deploy it to a static web server or open dist/index.html directly. Opening the file directly requires browser support for storage on file:// pages and an API service that permits their cross-origin requests.

Features

  • Multiple conversations with automatic titles, renaming, and deletion; edit prompts, regenerate replies, and switch between message branches.
  • Streaming replies, deep thinking, smart search, link reading, and source citations; stop generation or continue eligible replies.
  • Upload, paste, or drag and drop attachments; use voice input and read replies aloud. A live audio spectrum appears in the first row of the input area while recording on mobile.
  • Markdown, syntax highlighting, KaTeX math, and Mermaid diagrams.
  • Simplified Chinese and English, light and dark themes, mobile layouts, location settings, and chat history import and export.

Data and storage

Your API key and settings are stored in the browser's localStorage. Conversations and original attachments are stored in IndexedDB. Local data is isolated by browser profile and site origin. Sending messages, uploading attachments, and using speech features sends the relevant content to the configured API service.

History import and export in Settings use ZIP archives. After confirmation and successful validation, importing replaces all local conversations and attachments. Exports include conversations and locally available original images, but exclude API keys, settings, and original non-image attachments. See the history import/export documentation (Chinese) for the archive format and preservation details.

Settings → Data → Delete all chats clears all local conversations, original attachments, and unsent drafts after confirmation. It stops ongoing replies and returns to a new chat. Your API key and settings are preserved; files already uploaded to the API service are not deleted.

Development

Command Description
pnpm dev Start the development server
pnpm build Build into dist/
pnpm type Run TypeScript type checks
pnpm lint Lint with oxlint
pnpm format Format with oxfmt

rspack.config.ts uses https://api.deepseek.com by default. Use createConfig({ apiOrigin, devServer }) to customize the API origin and development server proxy.

Chat uses deepseek-flash by default through Anthropic-compatible Messages / Files APIs. Speech features use ASR / TTS endpoints. Requests include extensions for search, link reading, titles, and latest_reminder, so the configured service must support the corresponding capabilities. Supported attachment formats are determined by server-side validation.

src/
  app/                 Application layout, themes, and global styles
  components/          Chat, settings, Markdown, and other UI components
  i18n/                English and Chinese translations
  services/
    api/               API requests, SSE, and protocol types
    chat/              Conversations, message branches, storage, and history import/export
    markdown/          Markdown parsing, syntax highlighting, and diagrams
    speech/            Audio recording and read-aloud playback
  utils/               Shared utilities

License

MIT. The build copies the license to dist/LICENSE; include it when distributing the app. Third-party dependencies are subject to their own licenses.

About

melete 负责交谈,mneme 负责记住——带长期记忆的 DeepSeek 聊天端(官方 chat-demo fork)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages