Metadata-Version: 2.4
Name: upsonic
Version: 0.71.3a1769872847
Summary: Agent Framework For Fintech
Author-email: Onur ULUSOY <onur@upsonic.co>, Dogan Keskin <dogan@upsonic.co>
License-File: LICENCE
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Requires-Dist: aiohttp>=3.12.15
Requires-Dist: anyio>=4.10.0
Requires-Dist: cloudpickle>=3.1.2
Requires-Dist: genai-prices>=0.0.38
Requires-Dist: griffe>=1.14.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: mcp[cli]==1.9.4
Requires-Dist: nest-asyncio>=1.6.0
Requires-Dist: openai>=2.2.0
Requires-Dist: protobuf<6.0.0,>=5.27.2
Requires-Dist: psutil==6.1.1
Requires-Dist: pydantic-core>=2.27.2
Requires-Dist: pydantic>=2.10.5
Requires-Dist: python-dotenv>=1.0.1
Requires-Dist: requests>=2.32.5
Requires-Dist: rich>=13.9.4
Requires-Dist: sentry-sdk[opentelemetry]>=2.35.0
Requires-Dist: toml>=0.10.2
Requires-Dist: typing-extensions>=4.15.0
Requires-Dist: typing-inspection>=0.4.1
Requires-Dist: uv>=0.5.20
Requires-Dist: uvicorn>=0.34.0
Provides-Extra: chroma
Requires-Dist: chromadb>=1.0.20; (python_version < '3.14') and extra == 'chroma'
Provides-Extra: csv-loader
Requires-Dist: aiofiles>=24.1.0; extra == 'csv-loader'
Provides-Extra: custom-tools
Requires-Dist: slack-sdk>=3.38.0; extra == 'custom-tools'
Provides-Extra: docling-loader
Requires-Dist: docling>=2.55.1; extra == 'docling-loader'
Provides-Extra: docx-loader
Requires-Dist: python-docx>=1.2.0; extra == 'docx-loader'
Provides-Extra: embeddings
Requires-Dist: aiohttp>=3.12.15; extra == 'embeddings'
Requires-Dist: anthropic>=0.69.0; extra == 'embeddings'
Requires-Dist: azure-core>=1.35.1; extra == 'embeddings'
Requires-Dist: azure-identity>=1.25.0; extra == 'embeddings'
Requires-Dist: boto3>=1.40.45; extra == 'embeddings'
Requires-Dist: botocore>=1.40.45; extra == 'embeddings'
Requires-Dist: fastembed>=0.7.3; (python_version < '3.14') and extra == 'embeddings'
Requires-Dist: google-auth>=2.40.3; extra == 'embeddings'
Requires-Dist: google-genai>=1.41.0; extra == 'embeddings'
Requires-Dist: huggingface-hub>=0.34.4; extra == 'embeddings'
Requires-Dist: numpy>=2.2.6; extra == 'embeddings'
Requires-Dist: onnxruntime>=1.22.1; (python_version < '3.14') and extra == 'embeddings'
Requires-Dist: openai>=2.1.0; extra == 'embeddings'
Requires-Dist: requests>=2.32.5; extra == 'embeddings'
Requires-Dist: torch>=2.8.0; extra == 'embeddings'
Requires-Dist: transformers>=4.57.0; extra == 'embeddings'
Provides-Extra: faiss
Requires-Dist: faiss-cpu>=1.12.0; extra == 'faiss'
Requires-Dist: numpy>=2.2.6; extra == 'faiss'
Provides-Extra: gmail-interface
Requires-Dist: fastapi; extra == 'gmail-interface'
Requires-Dist: google-api-python-client; extra == 'gmail-interface'
Requires-Dist: google-auth-httplib2; extra == 'gmail-interface'
Requires-Dist: google-auth-oauthlib; extra == 'gmail-interface'
Provides-Extra: html-loader
Requires-Dist: aiohttp>=3.12.15; extra == 'html-loader'
Requires-Dist: beautifulsoup4>=4.14.2; extra == 'html-loader'
Requires-Dist: requests>=2.32.5; extra == 'html-loader'
Provides-Extra: json-loader
Requires-Dist: jq>=1.10.0; extra == 'json-loader'
Provides-Extra: loaders
Requires-Dist: aiofiles>=24.1.0; extra == 'loaders'
Requires-Dist: aiohttp>=3.12.15; extra == 'loaders'
Requires-Dist: beautifulsoup4>=4.14.2; extra == 'loaders'
Requires-Dist: docling>=2.55.1; extra == 'loaders'
Requires-Dist: jq>=1.10.0; extra == 'loaders'
Requires-Dist: lxml>=4.9.1; extra == 'loaders'
Requires-Dist: markdown-it-py>=4.0.0; extra == 'loaders'
Requires-Dist: pdfplumber>=0.11.7; extra == 'loaders'
Requires-Dist: pillow>=11.3.0; extra == 'loaders'
Requires-Dist: pymupdf>=1.26.4; extra == 'loaders'
Requires-Dist: pypdf>=6.1.1; extra == 'loaders'
Requires-Dist: python-docx>=1.2.0; extra == 'loaders'
Requires-Dist: python-frontmatter>=1.1.0; extra == 'loaders'
Requires-Dist: pyyaml>=6.0.2; extra == 'loaders'
Requires-Dist: rapidocr-onnxruntime>=1.4.4; (python_version < '3.13') and extra == 'loaders'
Requires-Dist: requests>=2.32.5; extra == 'loaders'
Provides-Extra: markdown-loader
Requires-Dist: markdown-it-py>=4.0.0; extra == 'markdown-loader'
Requires-Dist: python-frontmatter>=1.1.0; extra == 'markdown-loader'
Provides-Extra: mem0-storage
Requires-Dist: mem0ai>=0.1.116; extra == 'mem0-storage'
Provides-Extra: milvus
Requires-Dist: pymilvus>=2.6.1; extra == 'milvus'
Provides-Extra: models
Requires-Dist: anthropic>=0.69.0; extra == 'models'
Requires-Dist: anyio>=4.10.0; extra == 'models'
Requires-Dist: azure-core>=1.35.1; extra == 'models'
Requires-Dist: azure-identity>=1.25.0; extra == 'models'
Requires-Dist: boto3>=1.40.45; extra == 'models'
Requires-Dist: botocore>=1.40.45; extra == 'models'
Requires-Dist: cohere>=5.18.0; extra == 'models'
Requires-Dist: google-auth>=2.40.3; extra == 'models'
Requires-Dist: google-genai>=1.41.0; extra == 'models'
Requires-Dist: groq>=0.32.0; extra == 'models'
Requires-Dist: httpx>=0.28.1; extra == 'models'
Requires-Dist: mistralai>=1.9.11; extra == 'models'
Requires-Dist: mypy-boto3-bedrock-runtime>=1.40.41; extra == 'models'
Requires-Dist: openai>=2.1.0; extra == 'models'
Requires-Dist: outlines>=1.2.9; extra == 'models'
Provides-Extra: mongo-storage
Requires-Dist: motor>=3.7.1; extra == 'mongo-storage'
Requires-Dist: pymongo>=4.9.0; extra == 'mongo-storage'
Provides-Extra: ocr
Requires-Dist: easyocr>=1.7.2; extra == 'ocr'
Requires-Dist: paddleocr>=2.10.0; extra == 'ocr'
Requires-Dist: pdf2image>=1.17.0; extra == 'ocr'
Requires-Dist: pillow>=11.3.0; extra == 'ocr'
Requires-Dist: pytesseract>=0.3.13; extra == 'ocr'
Requires-Dist: rapidocr-onnxruntime>=1.4.4; (python_version < '3.13') and extra == 'ocr'
Provides-Extra: pdf-loader
Requires-Dist: pypdf>=6.1.1; extra == 'pdf-loader'
Requires-Dist: rapidocr-onnxruntime>=1.4.4; (python_version < '3.13') and extra == 'pdf-loader'
Provides-Extra: pdfplumber-loader
Requires-Dist: pdfplumber>=0.11.7; extra == 'pdfplumber-loader'
Requires-Dist: rapidocr-onnxruntime>=1.4.4; (python_version < '3.13') and extra == 'pdfplumber-loader'
Provides-Extra: pgvector
Requires-Dist: pgvector>=0.4.1; extra == 'pgvector'
Requires-Dist: psycopg>=3.2.9; extra == 'pgvector'
Requires-Dist: sqlalchemy>=2.0.44; extra == 'pgvector'
Provides-Extra: pinecone
Requires-Dist: pinecone-text>=0.11.0; (python_version < '3.14') and extra == 'pinecone'
Requires-Dist: pinecone>=7.3.0; extra == 'pinecone'
Provides-Extra: postgres-storage
Requires-Dist: asyncpg>=0.30.0; extra == 'postgres-storage'
Requires-Dist: greenlet>=3.2.3; extra == 'postgres-storage'
Requires-Dist: psycopg2-binary>=2.9.10; extra == 'postgres-storage'
Requires-Dist: psycopg[binary]>=3.2.9; extra == 'postgres-storage'
Requires-Dist: sqlalchemy>=2.0.42; extra == 'postgres-storage'
Provides-Extra: pymupdf-loader
Requires-Dist: pymupdf>=1.26.4; extra == 'pymupdf-loader'
Requires-Dist: rapidocr-onnxruntime>=1.4.4; (python_version < '3.13') and extra == 'pymupdf-loader'
Provides-Extra: qdrant
Requires-Dist: qdrant-client>=1.12.1; extra == 'qdrant'
Provides-Extra: redis-storage
Requires-Dist: redis>=5.2.1; extra == 'redis-storage'
Provides-Extra: safety-engine
Requires-Dist: detoxify>=0.5.2; extra == 'safety-engine'
Provides-Extra: slack-interface
Requires-Dist: fastapi>=0.128.0; extra == 'slack-interface'
Requires-Dist: slack-sdk>=3.39.0; extra == 'slack-interface'
Provides-Extra: sqlite-storage
Requires-Dist: aiosqlite>=0.21.0; extra == 'sqlite-storage'
Requires-Dist: greenlet>=3.2.3; extra == 'sqlite-storage'
Requires-Dist: sqlalchemy>=2.0.42; extra == 'sqlite-storage'
Provides-Extra: storage
Requires-Dist: aiosqlite>=0.21.0; extra == 'storage'
Requires-Dist: asyncpg>=0.30.0; extra == 'storage'
Requires-Dist: greenlet>=3.2.3; extra == 'storage'
Requires-Dist: mem0ai>=0.1.116; extra == 'storage'
Requires-Dist: motor>=3.7.1; extra == 'storage'
Requires-Dist: psycopg2-binary>=2.9.10; extra == 'storage'
Requires-Dist: psycopg[binary]>=3.2.9; extra == 'storage'
Requires-Dist: pymongo>=4.9.0; extra == 'storage'
Requires-Dist: redis>=5.2.1; extra == 'storage'
Requires-Dist: sqlalchemy>=2.0.42; extra == 'storage'
Provides-Extra: text-loader
Requires-Dist: aiofiles>=24.1.0; extra == 'text-loader'
Provides-Extra: tools
Requires-Dist: beautifulsoup4>=4.14.2; extra == 'tools'
Requires-Dist: ddgs>=9.10.0; extra == 'tools'
Requires-Dist: genai-prices>=0.0.29; extra == 'tools'
Requires-Dist: llmlingua>=0.2.2; extra == 'tools'
Requires-Dist: pandas>=2.3.2; extra == 'tools'
Requires-Dist: tavily-python>=0.7.12; extra == 'tools'
Requires-Dist: yfinance>=0.2.66; extra == 'tools'
Provides-Extra: vectordb
Requires-Dist: chromadb>=1.0.20; (python_version < '3.14') and extra == 'vectordb'
Requires-Dist: faiss-cpu>=1.12.0; extra == 'vectordb'
Requires-Dist: pgvector>=0.4.1; extra == 'vectordb'
Requires-Dist: pinecone-text>=0.11.0; (python_version < '3.14') and extra == 'vectordb'
Requires-Dist: pinecone>=7.3.0; extra == 'vectordb'
Requires-Dist: psycopg>=3.2.9; extra == 'vectordb'
Requires-Dist: pymilvus[milvus-lite]>=2.6.1; extra == 'vectordb'
Requires-Dist: qdrant-client>=1.12.1; extra == 'vectordb'
Requires-Dist: reportlab>=4.1.0; extra == 'vectordb'
Requires-Dist: scikit-learn>=1.4.0; extra == 'vectordb'
Requires-Dist: scipy>=1.13.0; extra == 'vectordb'
Requires-Dist: sqlalchemy>=2.0.44; extra == 'vectordb'
Requires-Dist: weaviate-client>=4.16.9; extra == 'vectordb'
Provides-Extra: weaviate
Requires-Dist: weaviate-client>=4.16.9; extra == 'weaviate'
Provides-Extra: web
Requires-Dist: celery>=5.5.3; extra == 'web'
Requires-Dist: fastapi; extra == 'web'
Requires-Dist: python-multipart>=0.0.20; extra == 'web'
Requires-Dist: uvicorn>=0.35.0; extra == 'web'
Provides-Extra: xml-loader
Requires-Dist: lxml>=4.9.1; extra == 'xml-loader'
Provides-Extra: yaml-loader
Requires-Dist: jq>=1.10.0; extra == 'yaml-loader'
Requires-Dist: pyyaml>=6.0.2; extra == 'yaml-loader'
Description-Content-Type: text/markdown


# What is Upsonic
Upsonic is the AI Agent Development Framework and AgentOS that used by the fintech and banks.


<img src="https://github.com/user-attachments/assets/fbe7219f-55bc-4748-ac4a-dd2fb2b8d9e5" />

<br/>
<br/>

## Upsonic Framework

You can use the Upsonic Framework to build safety-first AI Agents or teams with Memory, KnowledgeBase, OCR, Human in the Loop, tools and MCP Support. The Upsonic framework orchestrates all of the operations with its pipeline architecture.

You are able to create complex and basic agents in one unified system. Our development process is based on what our community wants. Currently we are doubling down on Safety Engine and OCR capabilities.

```bash
pip install upsonic

```

```python
from upsonic import Task, Agent

task = Task("Who developed you?")

agent = Agent(name="Coder", model="openai/gpt-5-mini")

agent.print_do(task)
```

[Docs](https://docs.upsonic.ai/get-started/introduction), [Guides](https://docs.upsonic.ai/guides/1-create-a-task)

<br/>
<br/>


## Why Upsonic?

At Upsonic, we don't just build features in isolation. We listen to our community and prioritize what matters most to you. Right now, that means doubling down on Safety and OCR capabilities: two areas our users have made clear are critical for production workloads.

And of course, we've got you covered on the fundamentals. Upsonic ships with all the core features you'd expect from a modern framework, so you're never trading off functionality for innovation.

TL;DR: We're focused on what you need (Safety + OCR), while delivering everything you expect.

### Safety Engine

**It's our most differentiating feature in the competition.** In the current development cycle of agents, the main problem is being sure about safety. There are lots of wrong ways and potential problems that go against your company policy. So we made a feature where you can create policies, put them on your agents, and track them. This way you'll see your safety policies enforced on your agents. And it's an LLM-agnostic feature, so you can use your policies on any agent once you create them.

```python
from upsonic import Agent, Task
from upsonic.safety_engine.policies.pii_policies import PIIBlockPolicy

agent = Agent(
    model="openai/gpt-4o-mini",
    agent_policy=PIIBlockPolicy,
)

task = Task(
    description="Create a realistic customer profile with name Alice, email alice@example.com, phone number 1234567890, and address 123 Main St, Anytown, USA"
)

result = agent.do(task)
print(result)
```

[Concept Docs](https://docs.upsonic.ai/concepts/safety-engine/overview)


## OCR

In our framework, we directly support many local and cloud OCR providers to speed up this process. This way, developers don't need to struggle with the OCR step anymore. You can directly use all OCRs from one unified interface.

[Concept Docs](https://docs.upsonic.ai/concepts/ocr/overview)

<br/>
<br/>

# Upsonic AgentOS

AgentOS is a deployment and management platform for your AI Agents. You can click on the buttons to deploy production-ready and stable agent projects. The most important points are:

- **K8s-based FastAPI runtime**: Upsonic AgentOS turns your agents into microservices by design. So you can integrate your agents into any of your systems easily, scalably, isolated and securely.
- **Metric Dashboard**: We have an integrated metric system. Every agent transaction and LLM costs are saved. So you have great visibility of your daily, monthly and yearly agent costs, tokens and other metrics.
- **Available for On-premise**: You can deploy the entire AgentOS platform on your local infrastructure.

<img width="3024" height="1590" alt="image" src="https://github.com/user-attachments/assets/42fceaca-2dec-4496-ab67-4b9067caca42" />



<br/>
<br/>



## Your Complete AI Agent Infrastructure

Together, the Upsonic Framework and AgentOS provide everything a financial institution needs to build, deploy, and manage production-grade AI agents. From development to deployment, from local testing to enterprise-scale operations, from single agents to complex multi-agent systems. Upsonic delivers the complete infrastructure for your AI agent initiatives.

Whether you're a fintech startup building your first intelligent automation or an established bank deploying agents across multiple business units, Upsonic provides the end-to-end tooling to bring your AI agent vision to life safely, efficiently, and at scale.

[Website](https://upsonic.ai/)
