Metadata-Version: 2.4
Name: personal-assistant-agent
Version: 0.1.0
Summary: Reusable LangChain-based agent package extracted from PersonalAssistant
Author: Personal Assistant Team
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: fastapi[standard]<1.0,>=0.115
Requires-Dist: langchain<0.4.0,>=0.3.25
Requires-Dist: langchain-core<1.0.0,>=0.3.78
Requires-Dist: langchain-openai<0.4.0,>=0.3.35
Requires-Dist: langgraph<1.1.0,>=0.3.25
Requires-Dist: python-dotenv<2.0,>=1.0
Requires-Dist: pyyaml<7.0,>=6.0
Provides-Extra: dev
Requires-Dist: pytest<9.0,>=8.0; extra == "dev"
Provides-Extra: elasticsearch
Requires-Dist: personal-assistant-elasticsearch; extra == "elasticsearch"

# Personal Assistant Agent

Standalone Python project for the reusable agent layer extracted from `PersonalAssistant`.

## Included

- `personal_assistant_agent.agent.Agent`
- `personal_assistant_agent.agent.AgentConfig`
- `personal_assistant_agent.agent.AzureOpenAIModelConfig`
- `personal_assistant_agent.api.create_app()` for the FastAPI chat API wrapper

## Install

```bash
pip install -e .
```

## Run the API locally

```bash
uvicorn personal_assistant_agent.api:app --reload --port 8000
```

## Minimal usage

```python
from langchain_core.messages import HumanMessage
from personal_assistant_agent.agent import Agent, AgentConfig
from personal_assistant_agent.enums import LLM_PROVIDER

config = AgentConfig(
    nickname="assistant",
    host="http://127.0.0.1:1234",
    model="google/gemma-3-4b",
    temperature=0.2,
    provider=LLM_PROVIDER.LMSTUDIO,
)

agent = Agent(config)
response = agent.invoke(HumanMessage(content="Hello"))
print(response.content)
```

## Test

```bash
pytest
```

