Source: https://seerepo.com/r/dataelement/bisheng/built
Markdown source: https://seerepo.com/r/dataelement/bisheng/built.md
Description: bisheng is a Python repo built with React, FastAPI, uvicorn, Vite, and react-router-dom. It signs people in with cryptography, pyjwt, and captcha.

# What is bisheng built with?

bisheng is a Python repo built with React, FastAPI, uvicorn, Vite, and react-router-dom. It signs people in with cryptography, pyjwt, and captcha, uses AI through langchain-google-genai, LangChain, LangGraph, langchain-openai, mcp, and 8 more, makes its content with pymupdf, pillow, bs4, markdown, markdownify, and 21 more, validates its data with Pydantic and Zod, is tested with playwright, Vitest, xlsx, Testing Library, fake-indexeddb, and 1 more, deploys with loguru and docker, and uses aiomysql, asyncpg, ibm-db, ibm-db-sa, oracledb, and 9 more. It has 1,115,223 written lines, with 2,201 test files.

Read on November 11, 2026, at commit af1894a.

Repository: https://github.com/dataelement/bisheng

## Frontend (/)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in src/frontend/client/package.json](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/frontend/client/package.json)

### Interface

- **[matplotlib](https://seerepo.com/uses/matplotlib)**: 2 files

## Backend (/)

### The base

- **[FastAPI](https://seerepo.com/uses/fastapi)**: 246 files
- **[uvicorn](https://seerepo.com/uses/uvicorn)**: 4 files

### Data

- **aiomysql**
- **[asyncpg](https://seerepo.com/uses/asyncpg)**
- **ibm-db**
- **ibm-db-sa**
- **[oracledb](https://seerepo.com/uses/oracledb)**
- **[psycopg2-binary](https://seerepo.com/uses/psycopg2-binary)**
- **[pymongo](https://seerepo.com/uses/pymongo)**
- **[pymilvus](https://seerepo.com/uses/pymilvus)**: 6 files
- **[Celery](https://seerepo.com/uses/celery)**: 4 files
- **[MongoDB](https://seerepo.com/uses/mongodb)**: 1 file · [src/backend/pyproject.toml, line 62](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/backend/pyproject.toml#L62)
- **[MySQL](https://seerepo.com/uses/mysql)**: 1 file · [src/backend/pyproject.toml, line 10](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/backend/pyproject.toml#L10)
- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [src/backend/pyproject.toml, line 12](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/backend/pyproject.toml#L12)
- **[pymysql](https://seerepo.com/uses/pymysql)**: 1 file

### Sign-in

- **[cryptography](https://seerepo.com/uses/cryptography)**: 12 files
- **[pyjwt](https://seerepo.com/uses/pyjwt)**: 9 files
- **captcha**: 1 file

### AI

- **[langchain-google-genai](https://seerepo.com/uses/langchain-google-genai)**
- **[LangChain](https://seerepo.com/uses/langchain)**: 204 files
- **[LangGraph](https://seerepo.com/uses/langgraph)**: 13 files
- **[langchain-openai](https://seerepo.com/uses/langchain-openai)**: 9 files
- **[mcp](https://seerepo.com/uses/mcp)**: 9 files
- **[opencv-python](https://seerepo.com/uses/opencv-python)**: 4 files
- **[dashscope](https://seerepo.com/uses/dashscope)**: 3 files
- **[langchain-anthropic](https://seerepo.com/uses/langchain-anthropic)**: 2 files
- **langchain-deepseek**: 2 files
- **langchain-ollama**: 2 files
- **llama-index**: 2 files
- **e2b-code-interpreter**: 1 file

### Services

- **[OpenAI](https://seerepo.com/uses/openai)**: 14 files · [src/backend/bisheng/core/ai/asr/openai_asr_client.py, line 3](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/backend/bisheng/core/ai/asr/openai_asr_client.py#L3)
- **[MinIO](https://seerepo.com/uses/minio)**: 6 files · [src/backend/bisheng/core/storage/minio/minio_storage.py, line 16](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/backend/bisheng/core/storage/minio/minio_storage.py#L16)

## Support (/)

### Content

- **[pymupdf](https://seerepo.com/uses/pymupdf)**: 11 files
- **[pillow](https://seerepo.com/uses/pillow)**: 9 files
- **bs4**: 4 files
- **[markdown](https://seerepo.com/uses/markdown)**: 4 files
- **[markdownify](https://seerepo.com/uses/markdownify)**: 2 files
- **[openpyxl](https://seerepo.com/uses/openpyxl)**: 2 files
- **[jinja2](https://seerepo.com/uses/jinja2)**: 1 file

### Validation

- **[Pydantic](https://seerepo.com/uses/pydantic)**: 265 files

### Testing

- **playwright**: 5 files

### Deploy

- **[loguru](https://seerepo.com/uses/loguru)**: 347 files
- **[docker](https://seerepo.com/uses/docker)**: 2 files

### Other

- **",**
- **emoji**
- **s**
- **httpx**: 48 files
- **pandas**: 13 files
- **pyyaml**: 12 files
- **aiofiles**: 7 files
- **jieba**: 3 files
- **appdirs**: 2 files
- **chardet**: 1 file
- **i18next**: 1 file
- **react-i18next**: 1 file

## Frontend (src/frontend)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: 1 file · [in src/frontend/client/package.json](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/frontend/client/package.json)

### Styles

- **[PostCSS](https://seerepo.com/uses/postcss)**: 1 file
- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**: 1 file

## Support (src/frontend)

### Testing

- **Vitest**: 6 files
- **[xlsx](https://seerepo.com/uses/xlsx)**: 1 file

### Tools

- **ESLint**: 1 file
- **eslint-plugin-react-hooks**: 1 file
- **globals**: 1 file
- **typescript-eslint**: 1 file

## Frontend (src/frontend/client)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in src/frontend/client/package.json](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/frontend/client/package.json)
- **[React](https://seerepo.com/uses/react)**: 816 files · [in src/frontend/client/package.json](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/frontend/client/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 119 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[class-variance-authority](https://seerepo.com/uses/class-variance-authority)**: 1 file

### Interface

- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 55 files
- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 40 files
- **tanstack**: 17 files
- **Ariakit**: 10 files
- **react-activation**: 10 files
- **[Framer](https://seerepo.com/uses/framer)**: 9 files
- **[Headless UI](https://seerepo.com/uses/headless-ui)**: 9 files
- **[react-textarea-autosize](https://seerepo.com/uses/react-textarea-autosize)**: 6 files
- **CodeSandbox**: 5 files
- **[input-otp](https://seerepo.com/uses/input-otp)**: 4 files
- **[react-dnd](https://seerepo.com/uses/react-dnd)**: 3 files
- **[react-resizable-panels](https://seerepo.com/uses/react-resizable-panels)**: 3 files
- **[react-transition-group](https://seerepo.com/uses/react-transition-group)**: 3 files
- **rc-input-number**: 2 files
- **[react-dnd-html5-backend](https://seerepo.com/uses/react-dnd-html5-backend)**: 2 files
- **@dicebear/core**: 1 file
- **@hello-pangea/dnd**: 1 file
- **react-avatar-editor**: 1 file
- **react-flip-toolkit**: 1 file
- **react-lazy-load-image-component**: 1 file
- **react-speech-recognition**: 1 file

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 226 files
- **[@radix-ui/react-icons](https://seerepo.com/uses/radix-ui-react-icons)**: 8 files
- **DiceBear**: 1 file

## Support (src/frontend/client)

### Content

- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 9 files
- **[rehype-highlight](https://seerepo.com/uses/rehype-highlight)**: 6 files
- **[rehype-katex](https://seerepo.com/uses/rehype-katex)**: 6 files
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 6 files
- **[remark-math](https://seerepo.com/uses/remark-math)**: 5 files
- **remark-supersub**: 5 files
- **[unified](https://seerepo.com/uses/unified)**: 4 files
- **[unist-util-visit](https://seerepo.com/uses/unist-util-visit)**: 3 files
- **export-from-json**: 2 files
- **[js-yaml](https://seerepo.com/uses/js-yaml)**: 2 files
- **[pdfjs-dist](https://seerepo.com/uses/pdfjs-dist)**: 2 files
- **[qrcode.react](https://seerepo.com/uses/qrcodereact)**: 2 files
- **[html-to-image](https://seerepo.com/uses/html-to-image)**: 1 file
- **[rehype-slug](https://seerepo.com/uses/rehype-slug)**: 1 file
- **remark-directive**: 1 file

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 13 files

### Testing

- **Testing Library**: 119 files
- **fake-indexeddb**: 1 file
- **jest-canvas-mock**: 1 file

### Tools

- **openapi-types**: 2 files
- **TypeScript**: 2 files

### Other

- **Recoil**: 233 files
- **[TanStack](https://seerepo.com/uses/tanstack)**: 113 files
- **Lodash**: 22 files
- **i18next**: 11 files
- **uuid**: 8 files
- **Axios**: 7 files
- **react-i18next**: 6 files
- **date-fns**: 5 files
- **copy-to-clipboard**: 3 files
- **js-cookie**: 3 files
- **sse.js**: 3 files
- **dedent**: 2 files
- **filenamify**: 2 files
- **jsencrypt**: 2 files
- **match-sorter**: 2 files
- **react-gtm-module**: 2 files
- **@rc-component/mini-decimal**: 1 file
- **downloadjs**: 1 file
- **howler**: 1 file
- **i18next-browser-languagedetector**: 1 file
- **Immer**: 1 file
- **jszip**: 1 file
- **p-limit**: 1 file
- **regenerator-runtime**: 1 file

## Support (src/frontend/packages/api-client)

### Testing

- **Vitest**: 1 file

## Frontend (src/frontend/packages/chat)

### The base

- **[React](https://seerepo.com/uses/react)**: 30 files · [in src/frontend/client/package.json](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/frontend/client/package.json)

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 2 files

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 1 file

## Support (src/frontend/packages/chat)

### Content

- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file
- **[rehype-highlight](https://seerepo.com/uses/rehype-highlight)**: 1 file
- **[rehype-katex](https://seerepo.com/uses/rehype-katex)**: 1 file
- **[rehype-slug](https://seerepo.com/uses/rehype-slug)**: 1 file
- **remark-directive**: 1 file
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file
- **[remark-math](https://seerepo.com/uses/remark-math)**: 1 file
- **remark-supersub**: 1 file
- **[unified](https://seerepo.com/uses/unified)**: 1 file

### Testing

- **Vitest**: 16 files
- **Testing Library**: 11 files

## Support (src/frontend/packages/diagram-runtime)

### Testing

- **Vitest**: 1 file

## Frontend (src/frontend/packages/file-viewers)

### The base

- **[React](https://seerepo.com/uses/react)**: 12 files · [in src/frontend/client/package.json](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/frontend/client/package.json)

## Support (src/frontend/packages/file-viewers)

### Content

- **[pdfjs-dist](https://seerepo.com/uses/pdfjs-dist)**: 4 files
- **[dompurify](https://seerepo.com/uses/dompurify)**: 1 file
- **[mammoth](https://seerepo.com/uses/mammoth)**: 1 file
- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file
- **[rehype-highlight](https://seerepo.com/uses/rehype-highlight)**: 1 file
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file
- **[xlsx](https://seerepo.com/uses/xlsx)**: 1 file

### Testing

- **Vitest**: 7 files
- **Testing Library**: 4 files

### Other

- **react-i18next**: 4 files

## Frontend (src/frontend/packages/ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 50 files · [in src/frontend/client/package.json](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/frontend/client/package.json)

### Styles

- **[class-variance-authority](https://seerepo.com/uses/class-variance-authority)**: 2 files
- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**: 1 file
- **[tailwind-merge](https://seerepo.com/uses/tailwind-merge)**: 1 file

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 14 files

## Support (src/frontend/packages/ui)

### Content

- **[qrcode.react](https://seerepo.com/uses/qrcodereact)**: 1 file

### Other

- **clsx**: 1 file

## Frontend (src/frontend/platform)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in src/frontend/client/package.json](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/frontend/client/package.json)
- **[React](https://seerepo.com/uses/react)**: 531 files · [in src/frontend/client/package.json](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/frontend/client/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 71 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[class-variance-authority](https://seerepo.com/uses/class-variance-authority)**: 4 files
- **[tailwind-merge](https://seerepo.com/uses/tailwind-merge)**: 3 files

### Interface

- **[xyflow](https://seerepo.com/uses/xyflow)**: 23 files
- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 16 files
- **[Headless UI](https://seerepo.com/uses/headless-ui)**: 7 files
- **[react-syntax-highlighter](https://seerepo.com/uses/react-syntax-highlighter)**: 7 files
- **react-ace**: 6 files
- **@hello-pangea/dnd**: 5 files
- **[react-dropzone](https://seerepo.com/uses/react-dropzone)**: 5 files
- **[react-color](https://seerepo.com/uses/react-color)**: 2 files
- **[recharts](https://seerepo.com/uses/recharts)**: 2 files
- **ace-builds**: 1 file
- **[cmdk](https://seerepo.com/uses/cmdk)**: 1 file
- **[react-day-picker](https://seerepo.com/uses/react-day-picker)**: 1 file
- **[react-grid-layout](https://seerepo.com/uses/react-grid-layout)**: 1 file
- **[react-resizable](https://seerepo.com/uses/react-resizable)**: 1 file
- **[react-window](https://seerepo.com/uses/react-window)**: 1 file

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 123 files

## Support (src/frontend/platform)

### Content

- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 3 files
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 3 files
- **[xlsx](https://seerepo.com/uses/xlsx)**: 2 files
- **[ansi-to-html](https://seerepo.com/uses/ansi-to-html)**: 1 file
- **[dompurify](https://seerepo.com/uses/dompurify)**: 1 file
- **[pdfjs-dist](https://seerepo.com/uses/pdfjs-dist)**: 1 file
- **[qrcode.react](https://seerepo.com/uses/qrcodereact)**: 1 file
- **rehype-mathjax**: 1 file
- **[remark-math](https://seerepo.com/uses/remark-math)**: 1 file
- **[unist-util-visit](https://seerepo.com/uses/unist-util-visit)**: 1 file

### Testing

- **Vitest**: 285 files
- **Testing Library**: 179 files

### Other

- **react-i18next**: 415 files
- **Lodash**: 31 files
- **[TanStack](https://seerepo.com/uses/tanstack)**: 28 files
- **i18next**: 23 files
- **zustand**: 12 files
- **Axios**: 3 files
- **clsx**: 3 files
- **date-fns**: 3 files
- **base64-js**: 1 file
- **howler**: 1 file
- **i18next-http-backend**: 1 file
- **jsencrypt**: 1 file
- **web-vitals**: 1 file

## Other repos with a similar stack

- [langflow-ai/langflow](https://seerepo.com/r/langflow-ai/langflow/built): React, FastAPI, uvicorn, ibm-db, oracledb, OpenAI, Vite, react-router-dom, cryptography, pyjwt, langchain-google-genai, LangChain, langchain-openai, MCP, langchain-anthropic, langchain-ollama, pillow, Pydantic, loguru, Tailwind CSS, class-variance-authority, Radix UI, Framer, Headless UI, Lucide, @radix-ui/react-icons, react-markdown, remark-gfm, dompurify, tailwind-merge, xyflow, react-syntax-highlighter, react-ace, ace-builds, cmdk, react-day-picker, ansi-to-html, rehype-mathjax · [Compare](https://seerepo.com/compare/dataelement/bisheng/vs/langflow-ai/langflow)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): React, FastAPI, uvicorn, psycopg2-binary, Postgres, pymysql, OpenAI, cryptography, pyjwt, e2b-code-interpreter, pillow, openpyxl, jinja2, Pydantic, docker, PostCSS, Tailwind CSS, class-variance-authority, React Hook Form, Radix UI, Framer, react-markdown, rehype-highlight, rehype-katex, remark-gfm, remark-math, rehype-slug, Zod, tailwind-merge, recharts, cmdk, react-day-picker, react-window · [Compare](https://seerepo.com/compare/dataelement/bisheng/vs/Significant-Gravitas/AutoGPT)
- [apache/superset](https://seerepo.com/r/apache/superset/built): React, uvicorn, oracledb, psycopg2-binary, pymongo, Celery, MongoDB, MySQL, Postgres, pymysql, matplotlib, cryptography, pyjwt, MCP, pillow, markdown, openpyxl, jinja2, Pydantic, docker, react-markdown, remark-gfm, Zod, dompurify, react-syntax-highlighter, react-ace, ace-builds, react-window · [Compare](https://seerepo.com/compare/apache/superset/vs/dataelement/bisheng)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): React, OpenAI, Vite, MCP, Tailwind CSS, class-variance-authority, React Hook Form, Radix UI, tanstack, input-otp, react-resizable-panels, Lucide, react-markdown, remark-gfm, unified, unist-util-visit, js-yaml, html-to-image, Zod, xyflow, react-syntax-highlighter, react-dropzone, recharts, cmdk, react-day-picker, react-grid-layout, react-resizable · [Compare](https://seerepo.com/compare/dataelement/bisheng/vs/supabase/supabase)
- [infiniflow/ragflow](https://seerepo.com/r/infiniflow/ragflow/built): React, MySQL, Postgres, OpenAI, MinIO, MCP, Tailwind CSS, class-variance-authority, React Hook Form, Radix UI, tanstack, react-resizable-panels, Lucide, react-markdown, rehype-katex, remark-gfm, remark-math, Zod, dompurify, xlsx, tailwind-merge, xyflow, react-syntax-highlighter, react-dropzone, recharts, cmdk, react-day-picker · [Compare](https://seerepo.com/compare/dataelement/bisheng/vs/infiniflow/ragflow)
- [unslothai/unsloth](https://seerepo.com/r/unslothai/unsloth/built): React, FastAPI, uvicorn, OpenAI, Vite, matplotlib, cryptography, pyjwt, pymupdf, pillow, jinja2, Pydantic, loguru, PostCSS, Tailwind CSS, class-variance-authority, Radix UI, react-resizable-panels, Lucide, unified, js-yaml, mammoth, tailwind-merge, xyflow, recharts, cmdk, react-day-picker · [Compare](https://seerepo.com/compare/dataelement/bisheng/vs/unslothai/unsloth)

## Frequently asked questions

### What language is bisheng written in?

bisheng is written in Python, with 1,115,223 written lines.

### What framework does bisheng use?

bisheng is built with React, FastAPI, uvicorn, Vite, and react-router-dom.

The proof: [in src/frontend/client/package.json](https://github.com/dataelement/bisheng/blob/af1894a53859708efb1db471c05b0915d53056d9/src/frontend/client/package.json)

### What does bisheng sign people in with?

bisheng signs people in with cryptography, pyjwt, and captcha.

### Does bisheng use AI?

Yes. bisheng uses AI through langchain-google-genai, LangChain, LangGraph, langchain-openai, mcp, opencv-python, dashscope, langchain-anthropic, langchain-deepseek, langchain-ollama, llama-index, e2b-code-interpreter, and OpenAI.

### What services does bisheng use?

bisheng uses aiomysql, asyncpg, ibm-db, ibm-db-sa, oracledb, psycopg2-binary, pymongo, pymilvus, Celery, MongoDB, MySQL, Postgres, pymysql, and MinIO.

### Does bisheng have tests?

Yes. bisheng has 2,201 test files and is tested with playwright, Vitest, xlsx, Testing Library, fake-indexeddb, and jest-canvas-mock.

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

The ones that share most of its stack: langflow-ai/langflow, Significant-Gravitas/AutoGPT, and apache/superset.

## 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.
