For the complete documentation index, see llms.txt. This page is also available as Markdown.

SurfSense

Connect SurfSense to TensorX and get a powerful AI research agent with access to your internal knowledge sources and external data.


What is SurfSense?

SurfSense is an open-source AI research agent and knowledge management platform. It's an alternative to NotebookLM, Perplexity, and Glean, connecting any LLM to your internal knowledge sources and external services.


Prerequisites

  • Docker and Docker Compose installed

  • A TensorX API key (sign up here)

  • At least 4GB RAM and 20GB disk space

  • PostgreSQL with pgvector extension (included in Docker setup)


Quick Start with Docker

  1. Clone the SurfSense repository:

  1. Create your environment file:

  1. Edit surfsense_backend/.env and configure TensorX:

  1. Start SurfSense:

  1. Access SurfSense at http://localhost:3000


Configuring TensorX LLM

SurfSense uses LiteLLM for LLM integration, supporting 100+ models. Configure TensorX through the SurfSense UI:

Step 1: Access LLM Settings

  1. Log in to SurfSense at http://localhost:3000

  2. Go to Settings β†’ LLM Configuration

Step 2: Add TensorX as Provider

Create a new LLM configuration:

Field
Value

Provider

OpenAI Compatible

Model

openai/deepseek/deepseek-chat-v3.1

API Base

https://api.tensorx.ai/v1

API Key

Your TensorX API key

Model format: Use openai/ prefix followed by the TensorX model name. This tells LiteLLM to route requests to an OpenAI-compatible endpoint.

Step 3: Test the Connection

Click Test Connection to verify your configuration works.


LiteLLM Model Format

SurfSense uses LiteLLM which requires specific model naming:

Examples

TensorX Model
LiteLLM Format

z-ai/glm-5.1

openai/z-ai/glm-5.1

minimax/minimax-m2.5

openai/minimax/minimax-m2.5

moonshotai/kimi-k2.5

openai/moonshotai/kimi-k2.5

deepseek/deepseek-chat-v3.1

openai/deepseek/deepseek-chat-v3.1

deepseek/deepseek-r1-0528

openai/deepseek/deepseek-r1-0528

meta-llama/llama-3.3-70b-instruct

openai/meta-llama/llama-3.3-70b-instruct


Use Case
Model
LiteLLM Format

General chat

deepseek/deepseek-chat-v3.1

openai/deepseek/deepseek-chat-v3.1

Complex reasoning

deepseek/deepseek-r1-0528

openai/deepseek/deepseek-r1-0528

Coding tasks

z-ai/glm-5.1

openai/z-ai/glm-5.1

Vision tasks

moonshotai/kimi-k2.5

openai/moonshotai/kimi-k2.5

Long context

meta-llama/llama-4-maverick

openai/meta-llama/llama-4-maverick

Fast responses

meta-llama/llama-3.3-70b-instruct

openai/meta-llama/llama-3.3-70b-instruct


Configuring TTS for Podcasts

SurfSense can generate podcasts from your research. Configure TensorX TTS:

Environment Variables

Add to your surfsense_backend/.env:

Or use TensorX's Chatterbox model:


Features with TensorX

πŸ” Search Spaces

Create organized knowledge bases with semantic and full-text search.

πŸ“ File Upload

Upload 50+ file formats including:

  • Documents (PDF, Word, Excel, PowerPoint)

  • Images (with OCR)

  • Videos and audio files

πŸ”— External Connectors

Connect to external services:

  • Google Drive, Gmail, Calendar

  • Slack, Discord

  • Notion, Confluence

  • GitHub, Linear, Jira

  • And many more

πŸ’¬ AI Chat

Chat with your knowledge base using TensorX models. Get cited answers with source references.

πŸŽ™οΈ Podcast Generation

Generate engaging podcasts from your research:

  1. Select content from your search space

  2. Click Generate Podcast

  3. Download the audio file


Docker Compose Configuration

Full docker-compose.yml for SurfSense with TensorX:


Troubleshooting

LLM Not Responding

  1. Verify the model format includes openai/ prefix

  2. Check API base URL: https://api.tensorx.ai/v1

  3. Test your API key:

Podcast Generation Fails

  1. Verify TTS environment variables are set correctly

  2. Check that TTS_SERVICE_API_BASE includes /v1

  3. Ensure your API key has sufficient credits

Database Connection Issues

  1. Ensure PostgreSQL is running: docker ps

  2. Check pgvector extension is installed

  3. Verify DATABASE_URL format

Check Logs


Resources


See Also

  • Audio API - Text-to-speech and speech-to-text

  • API Examples - Code examples for TensorX API

  • Open Notebook - Another NotebookLM alternative

Last updated

Was this helpful?