Source: https://seerepo.com/r/SuanmoSuanyangTechnology/MemoryBear/built
Markdown source: https://seerepo.com/r/SuanmoSuanyangTechnology/MemoryBear/built.md
Description: MemoryBear is a Python repo built with FastAPI, Actix Web, uvicorn, Flask, werkzeug, and 8 more. It stores its data in Postgres.

# What is MemoryBear built with?

MemoryBear is a Python repo built with FastAPI, Actix Web, uvicorn, Flask, werkzeug, and 8 more. It stores its data in Postgres, reaches it with SQLAlchemy and alembic, signs people in with authlib, bcrypt, ecdsa, itsdangerous, keyring, and 4 more, uses AI through crcmod, langchain-mcp-adapters, langfuse, langgraph-sdk, langsmith, and 19 more, makes its content with docutils, et-xmlfile, html5lib, mako, markdown-it-py, and 36 more, validates its data with annotated-types, demjson3, email-validator, jsonschema, jsonschema-path, and 6 more, is tested with Pytest and pytest-asyncio, deploys with Flower, OpenTelemetry, opentelemetry-semantic-conventions, volcengine-python-sdk, botocore, and 6 more, and uses amqp, asyncpg, psycopg, psycopg2-binary, py-key-value-aio, and 10 more. It has 773,759 written lines, with 48 test files.

Read on November 13, 2026, at commit 9ba1071.

Repository: https://github.com/SuanmoSuanyangTechnology/MemoryBear

## Frontend (/)

### Styles

- **[soupsieve](https://seerepo.com/uses/soupsieve)**

### Interface

- **[prompt-toolkit](https://seerepo.com/uses/prompt-toolkit)**
- **[Rich](https://seerepo.com/uses/rich)**
- **[matplotlib](https://seerepo.com/uses/matplotlib)**: 1 file

## Backend (/)

### The base

- **[FastAPI](https://seerepo.com/uses/fastapi)**: 216 files
- **[Actix Web](https://seerepo.com/uses/actix-web)**: 3 files
- **[uvicorn](https://seerepo.com/uses/uvicorn)**: 2 files
- **[Flask](https://seerepo.com/uses/flask)**: 1 file

### Data

- **amqp**
- **[asyncpg](https://seerepo.com/uses/asyncpg)**
- **[psycopg](https://seerepo.com/uses/psycopg)**
- **[psycopg2-binary](https://seerepo.com/uses/psycopg2-binary)**
- **py-key-value-aio**
- **[s3transfer](https://seerepo.com/uses/s3transfer)**
- **[Redis](https://seerepo.com/uses/redis)**: 53 files · [api/app/aioRedis.py, line 8](https://github.com/SuanmoSuanyangTechnology/MemoryBear/blob/9ba1071e12388e320dc4d871c5ad6ac4c539ff55/api/app/aioRedis.py#L8)
- **[Celery](https://seerepo.com/uses/celery)**: 18 files
- **[Neo4j](https://seerepo.com/uses/neo4j)**: 12 files
- **[Postgres](https://seerepo.com/uses/postgres)**: 11 files · [api/app/core/tools/builtin/database_tool.py, line 1](https://github.com/SuanmoSuanyangTechnology/MemoryBear/blob/9ba1071e12388e320dc4d871c5ad6ac4c539ff55/api/app/core/tools/builtin/database_tool.py#L1)
- **oss2**: 3 files
- **[kombu](https://seerepo.com/uses/kombu)**: 2 files
- **elasticsearch-dsl**: 1 file
- **valkey**: 1 file

### Data access

- **[SQLAlchemy](https://seerepo.com/uses/sqlalchemy)**: 564 files
- **[alembic](https://seerepo.com/uses/alembic)**: 1 file

### Sign-in

- **[authlib](https://seerepo.com/uses/authlib)**
- **[bcrypt](https://seerepo.com/uses/bcrypt)**
- **ecdsa**
- **[itsdangerous](https://seerepo.com/uses/itsdangerous)**
- **[keyring](https://seerepo.com/uses/keyring)**
- **python-jose**: 8 files
- **[cryptography](https://seerepo.com/uses/cryptography)**: 1 file
- **[passlib](https://seerepo.com/uses/passlib)**: 1 file
- **[pyjwt](https://seerepo.com/uses/pyjwt)**: 1 file

### AI

- **crcmod**
- **langchain-mcp-adapters**
- **[langfuse](https://seerepo.com/uses/langfuse)**
- **langgraph-sdk**
- **[langsmith](https://seerepo.com/uses/langsmith)**
- **[mcp](https://seerepo.com/uses/mcp)**
- **xinference-client**
- **[LangChain](https://seerepo.com/uses/langchain)**: 76 files
- **[LangGraph](https://seerepo.com/uses/langgraph)**: 27 files
- **[dashscope](https://seerepo.com/uses/dashscope)**: 8 files
- **[langchain-openai](https://seerepo.com/uses/langchain-openai)**: 5 files
- **langid**: 5 files
- **[opencv-python](https://seerepo.com/uses/opencv-python)**: 5 files
- **[tiktoken](https://seerepo.com/uses/tiktoken)**: 4 files
- **langchain-aws**: 3 files
- **langchain-ollama**: 2 files
- **[nltk](https://seerepo.com/uses/nltk)**: 2 files
- **chonkie**: 1 file
- **[ModelScope](https://seerepo.com/uses/modelscope)**: 1 file
- **[Ollama](https://seerepo.com/uses/ollama)**: 1 file
- **[onnxruntime](https://seerepo.com/uses/onnxruntime)**: 1 file
- **[scikit-learn](https://seerepo.com/uses/scikit-learn)**: 1 file
- **[xgboost](https://seerepo.com/uses/xgboost)**: 1 file

### Services

- **[Elasticsearch](https://seerepo.com/uses/elasticsearch)**: 20 files · [api/app/core/rag/vdb/elasticsearch/elasticsearch_vector.py, line 9](https://github.com/SuanmoSuanyangTechnology/MemoryBear/blob/9ba1071e12388e320dc4d871c5ad6ac4c539ff55/api/app/core/rag/vdb/elasticsearch/elasticsearch_vector.py#L9)
- **[OpenAI](https://seerepo.com/uses/openai)**: 12 files · [api/app/services/draft_run_service.py, line 3507](https://github.com/SuanmoSuanyangTechnology/MemoryBear/blob/9ba1071e12388e320dc4d871c5ad6ac4c539ff55/api/app/services/draft_run_service.py#L3507)
- **[Hugging Face](https://seerepo.com/uses/hugging-face)**: 4 files · [api/app/core/rag/deepdoc/parser/pdf_parser.py, line 17](https://github.com/SuanmoSuanyangTechnology/MemoryBear/blob/9ba1071e12388e320dc4d871c5ad6ac4c539ff55/api/app/core/rag/deepdoc/parser/pdf_parser.py#L17)

## Support (/)

### The base

- **[werkzeug](https://seerepo.com/uses/werkzeug)**
- **[starlette](https://seerepo.com/uses/starlette)**: 42 files
- **[AIOHTTP](https://seerepo.com/uses/aiohttp)**: 14 files
- **[Tokio](https://seerepo.com/uses/tokio)**: 8 files
- **[anyio](https://seerepo.com/uses/anyio)**: 2 files
- **[fastmcp](https://seerepo.com/uses/fastmcp)**: 1 file

### Content

- **[docutils](https://seerepo.com/uses/docutils)**
- **et-xmlfile**
- **[html5lib](https://seerepo.com/uses/html5lib)**
- **[mako](https://seerepo.com/uses/mako)**
- **[markdown-it-py](https://seerepo.com/uses/markdown-it-py)**
- **[markupsafe](https://seerepo.com/uses/markupsafe)**
- **[mdurl](https://seerepo.com/uses/mdurl)**
- **[python-docx](https://seerepo.com/uses/python-docx)**
- **python-magic-bin**
- **rich-rst**
- **[ruamel-yaml](https://seerepo.com/uses/ruamel-yaml)**
- **ruamel-yaml-clib**
- **[webencodings](https://seerepo.com/uses/webencodings)**
- **[pillow](https://seerepo.com/uses/pillow)**: 30 files
- **[jinja2](https://seerepo.com/uses/jinja2)**: 25 files
- **[openpyxl](https://seerepo.com/uses/openpyxl)**: 13 files
- **[beautifulsoup4](https://seerepo.com/uses/beautifulsoup4)**: 12 files
- **[python-magic](https://seerepo.com/uses/python-magic)**: 6 files
- **[markdown](https://seerepo.com/uses/markdown)**: 5 files
- **[pypdf](https://seerepo.com/uses/pypdf)**: 5 files
- **[pdfplumber](https://seerepo.com/uses/pdfplumber)**: 4 files
- **[xlrd](https://seerepo.com/uses/xlrd)**: 4 files
- **olefile**: 3 files
- **[pypdf2](https://seerepo.com/uses/pypdf2)**: 3 files
- **[pymupdf](https://seerepo.com/uses/pymupdf)**: 2 files
- **python-calamine**: 2 files
- **[python-pptx](https://seerepo.com/uses/python-pptx)**: 2 files
- **tika**: 2 files
- **[lxml](https://seerepo.com/uses/lxml)**: 1 file
- **[mammoth](https://seerepo.com/uses/mammoth)**: 1 file
- **[markdownify](https://seerepo.com/uses/markdownify)**: 1 file

### Validation

- **[annotated-types](https://seerepo.com/uses/annotated-types)**
- **demjson3**
- **[email-validator](https://seerepo.com/uses/email-validator)**
- **[jsonschema](https://seerepo.com/uses/jsonschema)**
- **jsonschema-path**
- **[jsonschema-specifications](https://seerepo.com/uses/jsonschema-specifications)**
- **[marshmallow](https://seerepo.com/uses/marshmallow)**
- **openapi-pydantic**
- **[referencing](https://seerepo.com/uses/referencing)**
- **[Pydantic](https://seerepo.com/uses/pydantic)**: 336 files
- **[beartype](https://seerepo.com/uses/beartype)**: 1 file

### Testing

- **Pytest**: 30 files
- **pytest-asyncio**: 1 file

### Deploy

- **Flower**
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**
- **[opentelemetry-semantic-conventions](https://seerepo.com/uses/opentelemetry-semantic-conventions)**
- **volcengine-python-sdk**
- **[botocore](https://seerepo.com/uses/botocore)**: 9 files
- **[prometheus-client](https://seerepo.com/uses/prometheus-client)**: 6 files
- **[tracing](https://seerepo.com/uses/tracing)**: 6 files
- **[boto3](https://seerepo.com/uses/boto3)**: 3 files
- **[psutil](https://seerepo.com/uses/psutil)**: 2 files
- **concurrent-log-handler**: 1 file
- **[tracing-subscriber](https://seerepo.com/uses/tracing-subscriber)**: 1 file

### Tools

- **celery-types**
- **click**
- **click-didyoumean**
- **click-plugins**
- **click-repl**
- **cyclopts**
- **docstring-parser**
- **mypy-extensions**
- **pycparser**
- **pygments**
- **typing-inspect**
- **watchfiles**
- **typing-extensions**: 2 files
- **packaging**: 1 file

### Other

- **aiofile**
- **aiohappyeyeballs**
- **aiosignal**
- **aliyun-python-sdk-core**
- **aliyun-python-sdk-kms**
- **async-timeout**
- **attrs**
- **backoff**
- **blinker**
- **caio**
- **certifi**
- **cffi**
- **charset-normalizer**
- **colorama**
- **dataclasses-json**
- **distro**
- **dnspython**
- **exceptiongroup**
- **frozenlist**
- **googleapis-common-protos**
- **greenlet**
- **grpcio**
- **grpcio-health-checking**
- **h11**
- **httpcore**
- **httptools**
- **httpx-sse**
- **idna**
- **importlib-metadata**
- **jaraco-classes**
- **jaraco-context**
- **jaraco-functools**
- **jeepney**
- **jiter**
- **jmespath**
- **joblib**
- **jsonpatch**
- **jsonpointer**
- **jsonref**
- **more-itertools**
- **multidict**
- **opentelemetry-exporter-otlp-proto-common**
- **ormsgpack**
- **outcome**
- **pathable**
- **platformdirs**
- **portalocker**
- **propcache**
- **protobuf**
- **pyasn1**
- **pycryptodome**
- **pyparsing**
- **pyperclip**
- **python-multipart**
- **pywin32**
- **pywin32-ctypes**
- **regex**
- **requests-toolbelt**
- **rpds-py**
- **rsa**
- **ruamel.yaml**
- **s**
- **secretstorage**
- **sniffio**
- **sortedcontainers**
- **sse-starlette**
- **tomli**
- **tqdm**
- **typing-inspection**
- **tzdata**
- **uncalled-for**
- **urllib3**
- **uuid**
- **uuid-utils**
- **uvloop**
- **vine**
- **wcwidth**
- **websocket-client**
- **wrapt**
- **yarl**
- **zipp**
- **zstandard**
- **httpx**: 73 files
- **requests**: 28 files
- **NumPy**: 27 files
- **json-repair**: 19 files
- **python-dotenv**: 17 files
- **pyyaml**: 15 files
- **trio**: 15 files
- **networkx**: 10 files
- **chardet**: 7 files
- **pandas**: 6 files
- **libc**: 5 files
- **pydantic-settings**: 5 files
- **serde_json**: 5 files
- **xxhash**: 5 files
- **aiofiles**: 4 files
- **tenacity**: 4 files
- **base64**: 3 files
- **deprecated**: 3 files
- **serde**: 3 files
- **strenum**: 3 files
- **orjson**: 2 files
- **pytz**: 2 files
- **rdflib**: 2 files
- **simpleeval**: 2 files
- **websockets**: 2 files
- **async-channel**: 1 file
- **billiard**: 1 file
- **cachetools**: 1 file
- **cn2an**: 1 file
- **editdistance**: 1 file
- **jieba**: 1 file
- **landlock**: 1 file
- **pyclipper**: 1 file
- **python-dateutil**: 1 file
- **rand**: 1 file
- **shapely**: 1 file
- **six**: 1 file
- **subtle**: 1 file
- **toml**: 1 file
- **word2number**: 1 file

## Frontend (web)

### The base

- **[React](https://seerepo.com/uses/react)**: 548 files · [in web/package.json](https://github.com/SuanmoSuanyangTechnology/MemoryBear/blob/9ba1071e12388e320dc4d871c5ad6ac4c539ff55/web/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 101 files
- **[Vite](https://seerepo.com/uses/vite)**: 1 file · [in web/package.json](https://github.com/SuanmoSuanyangTechnology/MemoryBear/blob/9ba1071e12388e320dc4d871c5ad6ac4c539ff55/web/package.json)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[@codemirror/theme-one-dark](https://seerepo.com/uses/codemirror-theme-one-dark)**: 1 file

### Interface

- **[antd](https://seerepo.com/uses/antd)**: 455 files
- **[lexical](https://seerepo.com/uses/lexical)**: 39 files
- **AntV**: 31 files
- **echarts-for-react**: 16 files
- **[D3](https://seerepo.com/uses/d3)**: 11 files
- **react-infinite-scroll-component**: 9 files
- **[echarts](https://seerepo.com/uses/echarts)**: 5 files
- **[dnd-kit](https://seerepo.com/uses/dnd-kit)**: 3 files
- **[CodeMirror](https://seerepo.com/uses/codemirror)**: 2 files
- **echarts-wordcloud**: 2 files
- **[react-syntax-highlighter](https://seerepo.com/uses/react-syntax-highlighter)**: 2 files
- **[Mermaid](https://seerepo.com/uses/mermaid)**: 1 file
- **react-fast-marquee**: 1 file
- **[react-window](https://seerepo.com/uses/react-window)**: 1 file

## Support (web)

### Content

- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 3 files
- **[html2canvas](https://seerepo.com/uses/html2canvas)**: 1 file
- **[js-yaml](https://seerepo.com/uses/js-yaml)**: 1 file
- **[mammoth](https://seerepo.com/uses/mammoth)**: 1 file
- **[pdfjs-dist](https://seerepo.com/uses/pdfjs-dist)**: 1 file
- **[rehype-katex](https://seerepo.com/uses/rehype-katex)**: 1 file
- **[rehype-raw](https://seerepo.com/uses/rehype-raw)**: 1 file
- **[remark-breaks](https://seerepo.com/uses/remark-breaks)**: 1 file
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file
- **[remark-math](https://seerepo.com/uses/remark-math)**: 1 file
- **[xlsx](https://seerepo.com/uses/xlsx)**: 1 file

### Other

- **react-i18next**: 392 files
- **clsx**: 146 files
- **dayjs**: 30 files
- **copy-to-clipboard**: 20 files
- **i18next**: 9 files
- **zustand**: 6 files
- **Axios**: 3 files
- **crypto-js**: 1 file
- **Matter.js**: 1 file
- **recordrtc**: 1 file

## Other repos with a similar stack

- [apache/superset](https://seerepo.com/r/apache/superset/built): uvicorn, Flask, amqp, psycopg2-binary, py-key-value-aio, s3transfer, Redis, Celery, Postgres, kombu, werkzeug, starlette, AIOHTTP, anyio, fastmcp, React, soupsieve, prompt-toolkit, matplotlib, SQLAlchemy, alembic, authlib, bcrypt, itsdangerous, cryptography, pyjwt, MCP, tiktoken, docutils, et-xmlfile, mako, markdown-it-py, markupsafe, mdurl, rich-rst, webencodings, pillow, jinja2, openpyxl, beautifulsoup4, markdown, xlrd, python-calamine, annotated-types, email-validator, jsonschema, jsonschema-path, jsonschema-specifications, marshmallow, openapi-pydantic, referencing, Pydantic, beartype, OpenTelemetry, botocore, prometheus-client, boto3, psutil, antd, D3, echarts, react-syntax-highlighter, react-window, react-markdown, rehype-raw, remark-gfm · [Compare](https://seerepo.com/compare/apache/superset/vs/SuanmoSuanyangTechnology/MemoryBear)
- [run-llama/llama_index](https://seerepo.com/r/run-llama/llama_index/built): asyncpg, psycopg, psycopg2-binary, Redis, Neo4j, oss2, OpenAI, starlette, AIOHTTP, anyio, soupsieve, prompt-toolkit, Rich, matplotlib, SQLAlchemy, cryptography, pyjwt, langfuse, MCP, LangChain, dashscope, opencv-python, tiktoken, nltk, chonkie, ModelScope, Ollama, scikit-learn, markupsafe, webencodings, pillow, jinja2, beautifulsoup4, pypdf, pdfplumber, xlrd, olefile, pypdf2, pymupdf, tika, lxml, markdownify, annotated-types, jsonschema, jsonschema-specifications, marshmallow, referencing, Pydantic, OpenTelemetry, opentelemetry-semantic-conventions, prometheus-client, boto3, psutil · [Compare](https://seerepo.com/compare/run-llama/llama_index/vs/SuanmoSuanyangTechnology/MemoryBear)
- [datawhalechina/hello-agents](https://seerepo.com/r/datawhalechina/hello-agents/built): FastAPI, uvicorn, Flask, asyncpg, psycopg2-binary, Redis, Postgres, OpenAI, Hugging Face, starlette, AIOHTTP, anyio, fastmcp, React, react-router-dom, Vite, soupsieve, Rich, matplotlib, SQLAlchemy, alembic, bcrypt, python-jose, passlib, MCP, LangGraph, langchain-openai, tiktoken, onnxruntime, scikit-learn, python-docx, pillow, jinja2, openpyxl, beautifulsoup4, markdown, pypdf, pdfplumber, xlrd, pypdf2, pymupdf, lxml, annotated-types, email-validator, jsonschema, Pydantic, OpenTelemetry, Tailwind CSS, D3, echarts, react-markdown, html2canvas · [Compare](https://seerepo.com/compare/datawhalechina/hello-agents/vs/SuanmoSuanyangTechnology/MemoryBear)
- [bojieli/ai-agent-book](https://seerepo.com/r/bojieli/ai-agent-book/built): FastAPI, uvicorn, Flask, psycopg2-binary, Postgres, OpenAI, Hugging Face, AIOHTTP, anyio, fastmcp, React, Vite, Rich, matplotlib, authlib, MCP, langchain-openai, opencv-python, tiktoken, nltk, Ollama, scikit-learn, xgboost, python-docx, pillow, openpyxl, beautifulsoup4, python-magic, markdown, pypdf, pdfplumber, xlrd, pypdf2, pymupdf, python-pptx, lxml, Pydantic, psutil, Tailwind CSS, D3, react-syntax-highlighter, react-markdown, remark-gfm · [Compare](https://seerepo.com/compare/bojieli/ai-agent-book/vs/SuanmoSuanyangTechnology/MemoryBear)
- [open-webui/open-webui](https://seerepo.com/r/open-webui/open-webui/built): FastAPI, uvicorn, psycopg, psycopg2-binary, Redis, Postgres, Elasticsearch, OpenAI, Hugging Face, AIOHTTP, SQLAlchemy, alembic, authlib, bcrypt, itsdangerous, cryptography, pyjwt, MCP, LangChain, tiktoken, onnxruntime, python-docx, pillow, openpyxl, beautifulsoup4, markdown, pypdf, xlrd, python-pptx, lxml, mammoth, Pydantic, OpenTelemetry, boto3, psutil, Tailwind CSS, @codemirror/theme-one-dark, CodeMirror, Mermaid, pdfjs-dist, xlsx · [Compare](https://seerepo.com/compare/open-webui/open-webui/vs/SuanmoSuanyangTechnology/MemoryBear)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): FastAPI, uvicorn, psycopg2-binary, Redis, Postgres, OpenAI, AIOHTTP, React, prompt-toolkit, Rich, SQLAlchemy, cryptography, pyjwt, langfuse, tiktoken, Ollama, markdown-it-py, python-docx, pillow, jinja2, openpyxl, beautifulsoup4, pypdf, demjson3, jsonschema, Pydantic, prometheus-client, boto3, psutil, Tailwind CSS, react-window, react-markdown, rehype-katex, remark-gfm, remark-math · [Compare](https://seerepo.com/compare/Significant-Gravitas/AutoGPT/vs/SuanmoSuanyangTechnology/MemoryBear)

## Frequently asked questions

### What language is MemoryBear written in?

MemoryBear is written in Python, with 773,759 written lines.

### What framework does MemoryBear use?

MemoryBear is built with FastAPI, Actix Web, uvicorn, Flask, werkzeug, starlette, AIOHTTP, Tokio, anyio, fastmcp, React, react-router-dom, and Vite.

### What database does MemoryBear use?

MemoryBear stores its data in Postgres and reaches it with SQLAlchemy and alembic.

The proof: [api/app/core/tools/builtin/database_tool.py, line 1](https://github.com/SuanmoSuanyangTechnology/MemoryBear/blob/9ba1071e12388e320dc4d871c5ad6ac4c539ff55/api/app/core/tools/builtin/database_tool.py#L1)

### What does MemoryBear sign people in with?

MemoryBear signs people in with authlib, bcrypt, ecdsa, itsdangerous, keyring, python-jose, cryptography, passlib, and pyjwt.

### Does MemoryBear use AI?

Yes. MemoryBear uses AI through crcmod, langchain-mcp-adapters, langfuse, langgraph-sdk, langsmith, mcp, xinference-client, LangChain, LangGraph, dashscope, langchain-openai, langid, opencv-python, tiktoken, langchain-aws, langchain-ollama, nltk, chonkie, ModelScope, Ollama, onnxruntime, scikit-learn, xgboost, and OpenAI.

### What services does MemoryBear use?

MemoryBear uses amqp, asyncpg, psycopg, psycopg2-binary, py-key-value-aio, s3transfer, Redis, Celery, Neo4j, oss2, kombu, elasticsearch-dsl, valkey, Elasticsearch, and Hugging Face.

### Does MemoryBear have tests?

Yes. MemoryBear has 48 test files and is tested with Pytest and pytest-asyncio.

### Which repos have a stack like MemoryBear's?

The ones that share most of its stack: apache/superset, run-llama/llama_index, and datawhalechina/hello-agents.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
