Skip to content

Feature request: support OpenAI-compatible LLM APIs (e.g. DeepSeek) and custom local embedding providers #202

@sirenexcelsior

Description

@sirenexcelsior

Summary

It would be very helpful if XMem added:

  1. First-class support for OpenAI-compatible LLM APIs such as DeepSeek
  2. A configurable custom local embedding provider for self-hosted embedding services

Why this would help

XMem is especially attractive for local-first and self-hosted multi-agent setups. In those environments, users often already have:

  • lower-cost or self-hosted OpenAI-compatible chat APIs
  • local embedding services such as BGE-M3
  • existing private AI infrastructure they want XMem to plug into

Right now, DeepSeek support is indirect and local embedding support is limited to a fixed set of provider shapes. That makes adoption harder than it needs to be.

Proposal

1. Add a generic OpenAI-compatible LLM provider

Example config:

OPENAI_COMPATIBLE_API_KEY=...
OPENAI_COMPATIBLE_BASE_URL=https://api.deepseek.com/v1
OPENAI_COMPATIBLE_MODEL=deepseek-chat

This would support:

  • DeepSeek official API
  • other OpenAI-compatible vendors
  • self-hosted OpenAI-compatible gateways

2. Add a generic custom embedding HTTP provider

Example config:

EMBEDDING_PROVIDER=custom
CUSTOM_EMBEDDING_BASE_URL=http://127.0.0.1:8001/embed
CUSTOM_EMBEDDING_MODEL=bge-m3
PINECONE_DIMENSION=1024

Suggested behavior:

  • send text to a user-configured embedding endpoint
  • accept a simple embedding response shape
  • validate returned vector dimension against PINECONE_DIMENSION
  • keep the rest of the pipeline unchanged

Example use case

A personal multi-agent setup where:

  • XMem runs locally
  • xmem-mcp is used by Codex, Claude Code, and Hermes
  • DeepSeek is used for LLM calls
  • local BGE-M3 is used for embeddings

This feels like a very natural XMem deployment model, but today it requires indirect routing or code patches.

Suggested acceptance criteria

  • XMem can call a configurable OpenAI-compatible LLM endpoint using API key, base URL, and model from config
  • XMem can call a configurable local embedding HTTP endpoint
  • embedding dimension validation still works as expected
  • existing providers continue to work without breaking changes
  • docs include at least one example for DeepSeek-compatible LLM setup and one example for custom local embeddings

Thanks for considering this — it would make XMem much easier to adopt in personal and self-hosted agent workflows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions