Source: https://seerepo.com/r/microsoft/promptflow/built
Markdown source: https://seerepo.com/r/microsoft/promptflow/built.md
Description: promptflow is a Python repo built with Flask, FastAPI, flask-restx, Streamlit, flask-cors, and 3 more. It reaches its data with SQLAlchemy.

# What is promptflow built with?

promptflow is a Python repo built with Flask, FastAPI, flask-restx, Streamlit, flask-cors, and 3 more. It reaches its data with SQLAlchemy, signs people in with azure-identity, pyjwt, cryptography, and keyring, uses AI through azure-ai-ml, faiss-cpu, nltk, rouge-score, tiktoken, and 2 more, makes its content with pypdf2, jinja2, pillow, bs4, filetype, and 1 more, validates its data with marshmallow and jsonschema, is tested with vcrpy, deploys with azure-core, OpenTelemetry, psutil, and waitress, and uses azure-cosmos, azure-search-documents, azure-storage-blob, and pyarrow. It has 325,282 written lines, with 717 test files.

Read on November 12, 2026, at commit 33a68c9.

Repository: https://github.com/microsoft/promptflow

## Backend

### The base

- **[Flask](https://seerepo.com/uses/flask)**: 16 files
- **[FastAPI](https://seerepo.com/uses/fastapi)**: 13 files

### Data

- **azure-cosmos**
- **azure-search-documents**
- **[azure-storage-blob](https://seerepo.com/uses/azure-storage-blob)**
- **[pyarrow](https://seerepo.com/uses/pyarrow)**

### Data access

- **[SQLAlchemy](https://seerepo.com/uses/sqlalchemy)**: 9 files

### Sign-in

- **[azure-identity](https://seerepo.com/uses/azure-identity)**
- **[pyjwt](https://seerepo.com/uses/pyjwt)**: 7 files
- **[cryptography](https://seerepo.com/uses/cryptography)**: 1 file
- **[keyring](https://seerepo.com/uses/keyring)**: 1 file

### AI

- **azure-ai-ml**
- **[faiss-cpu](https://seerepo.com/uses/faiss-cpu)**
- **[nltk](https://seerepo.com/uses/nltk)**
- **rouge-score**
- **[tiktoken](https://seerepo.com/uses/tiktoken)**: 2 files
- **[LangChain](https://seerepo.com/uses/langchain)**: 1 file

### Services

- **[OpenAI](https://seerepo.com/uses/openai)**: 6 files · [src/promptflow-recording/promptflow/recording/local/record_storage.py, line 15](https://github.com/microsoft/promptflow/blob/33a68c9d3cf349d7fdfad1f41969af27543c0406/src/promptflow-recording/promptflow/recording/local/record_storage.py#L15)

## Support

### The base

- **flask-restx**: 4 files
- **[Streamlit](https://seerepo.com/uses/streamlit)**: 4 files
- **[flask-cors](https://seerepo.com/uses/flask-cors)**: 2 files
- **[starlette](https://seerepo.com/uses/starlette)**: 2 files
- **[AIOHTTP](https://seerepo.com/uses/aiohttp)**: 1 file
- **[uvicorn](https://seerepo.com/uses/uvicorn)**: 1 file

### Content

- **[pypdf2](https://seerepo.com/uses/pypdf2)**
- **[jinja2](https://seerepo.com/uses/jinja2)**: 9 files
- **[pillow](https://seerepo.com/uses/pillow)**: 4 files
- **[bs4](https://seerepo.com/uses/bs4)**: 2 files
- **[filetype](https://seerepo.com/uses/filetype)**: 1 file
- **strictyaml**: 1 file

### Validation

- **[marshmallow](https://seerepo.com/uses/marshmallow)**: 15 files
- **[jsonschema](https://seerepo.com/uses/jsonschema)**: 1 file

### Testing

- **vcrpy**

### Deploy

- **[azure-core](https://seerepo.com/uses/azure-core)**
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 7 files
- **[psutil](https://seerepo.com/uses/psutil)**: 7 files
- **waitress**: 1 file

### Tools

- **argcomplete**: 1 file
- **docstring-parser**: 1 file
- **gitpython**: 1 file
- **pyinstaller**: 1 file

### Other

- **google-search-results**
- **jsonpath-ng**
- **websocket-client**
- **python-dotenv**: 18 files
- **pandas**: 12 files
- **pydash**: 10 files
- **httpx**: 7 files
- **NumPy**: 7 files
- **filelock**: 4 files
- **python-dateutil**: 3 files
- **ruamel.yaml**: 3 files
- **colorama**: 2 files
- **pywin32**: 1 file
- **tabulate**: 1 file

## Other repos with a similar stack

- [ray-project/ray](https://seerepo.com/r/ray-project/ray/built): Flask, FastAPI, azure-storage-blob, pyarrow, flask-cors, starlette, AIOHTTP, uvicorn, SQLAlchemy, azure-identity, pyjwt, cryptography, keyring, nltk, rouge-score, tiktoken, LangChain, jinja2, pillow, strictyaml, jsonschema, azure-core, OpenTelemetry, psutil · [Compare](https://seerepo.com/compare/microsoft/promptflow/vs/ray-project/ray)
- [run-llama/llama_index](https://seerepo.com/r/run-llama/llama_index/built): azure-cosmos, azure-search-documents, azure-storage-blob, pyarrow, OpenAI, starlette, AIOHTTP, SQLAlchemy, azure-identity, pyjwt, cryptography, nltk, tiktoken, LangChain, pypdf2, jinja2, pillow, bs4, filetype, marshmallow, jsonschema, OpenTelemetry, psutil · [Compare](https://seerepo.com/compare/microsoft/promptflow/vs/run-llama/llama_index)
- [apache/airflow](https://seerepo.com/r/apache/airflow/built): Flask, FastAPI, azure-cosmos, azure-search-documents, azure-storage-blob, pyarrow, AIOHTTP, uvicorn, SQLAlchemy, azure-identity, pyjwt, cryptography, keyring, jinja2, marshmallow, jsonschema, OpenTelemetry, psutil · [Compare](https://seerepo.com/compare/apache/airflow/vs/microsoft/promptflow)
- [apache/superset](https://seerepo.com/r/apache/superset/built): Flask, pyarrow, flask-cors, starlette, AIOHTTP, uvicorn, SQLAlchemy, pyjwt, cryptography, keyring, tiktoken, jinja2, pillow, marshmallow, jsonschema, OpenTelemetry, psutil · [Compare](https://seerepo.com/compare/apache/superset/vs/microsoft/promptflow)
- [open-webui/open-webui](https://seerepo.com/r/open-webui/open-webui/built): FastAPI, azure-search-documents, azure-storage-blob, pyarrow, OpenAI, AIOHTTP, uvicorn, SQLAlchemy, azure-identity, pyjwt, cryptography, tiktoken, LangChain, pillow, OpenTelemetry, psutil · [Compare](https://seerepo.com/compare/microsoft/promptflow/vs/open-webui/open-webui)
- [Aider-AI/aider](https://seerepo.com/r/Aider-AI/aider/built): FastAPI, pyarrow, OpenAI, Streamlit, starlette, AIOHTTP, SQLAlchemy, cryptography, nltk, tiktoken, jinja2, pillow, filetype, marshmallow, jsonschema, psutil · [Compare](https://seerepo.com/compare/Aider-AI/aider/vs/microsoft/promptflow)

## Frequently asked questions

### What language is promptflow written in?

promptflow is written in Python, with 325,282 written lines.

### What framework does promptflow use?

promptflow is built with Flask, FastAPI, flask-restx, Streamlit, flask-cors, starlette, AIOHTTP, and uvicorn.

### What does promptflow sign people in with?

promptflow signs people in with azure-identity, pyjwt, cryptography, and keyring.

### Does promptflow use AI?

Yes. promptflow uses AI through azure-ai-ml, faiss-cpu, nltk, rouge-score, tiktoken, LangChain, and OpenAI.

### What services does promptflow use?

promptflow uses azure-cosmos, azure-search-documents, azure-storage-blob, and pyarrow.

### Does promptflow have tests?

Yes. promptflow has 717 test files and is tested with vcrpy.

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

The ones that share most of its stack: ray-project/ray, run-llama/llama_index, and apache/airflow.

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