Skip to content

Commit 5a5959b

Browse files
committed
feat: open-ai-agents
1 parent 998e57f commit 5a5959b

286 files changed

Lines changed: 10318 additions & 668 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/publish-dev.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ on:
77
jobs:
88
publish-dev:
99
runs-on: ubuntu-latest
10+
strategy:
11+
matrix:
12+
package:
13+
- name: uipath-llamaindex
14+
path: packages/uipath-llamaindex
15+
- name: uipath-openai-agents
16+
path: packages/uipath-openai-agents
1017
permissions:
1118
contents: read
1219
pull-requests: write
@@ -36,7 +43,8 @@ jobs:
3643
env:
3744
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3845
run: |
39-
$pyprojcontent = Get-Content pyproject.toml -Raw
46+
$pyprojPath = "${{ matrix.package.path }}/pyproject.toml"
47+
$pyprojcontent = Get-Content $pyprojPath -Raw
4048
4149
$PROJECT_NAME = ($pyprojcontent | Select-String -Pattern '(?m)^\[(project|tool\.poetry)\][^\[]*?name\s*=\s*"([^"]*)"' -AllMatches).Matches[0].Groups[2].Value
4250
$CURRENT_VERSION = ($pyprojcontent | Select-String -Pattern '(?m)^\[(project|tool\.poetry)\][^\[]*?version\s*=\s*"([^"]*)"' -AllMatches).Matches[0].Groups[2].Value
@@ -55,9 +63,9 @@ jobs:
5563
$DEV_VERSION = "$CURRENT_VERSION.dev1$PADDED_PR$PADDED_RUN"
5664
5765
# Update version in pyproject.toml
58-
(Get-Content pyproject.toml) -replace "version = `"$CURRENT_VERSION`"", "version = `"$DEV_VERSION`"" | Set-Content pyproject.toml
66+
(Get-Content $pyprojPath) -replace "version = `"$CURRENT_VERSION`"", "version = `"$DEV_VERSION`"" | Set-Content $pyprojPath
5967
60-
Write-Output "Package version set to $DEV_VERSION"
68+
Write-Output "Package $PROJECT_NAME version set to $DEV_VERSION"
6169
6270
$dependencyMessage = @"
6371
## Development Package
@@ -119,7 +127,7 @@ jobs:
119127
Write-Output "Updated PR description with development package information"
120128
121129
- name: Build package
122-
run: uv build
130+
run: uv build --package ${{ matrix.package.name }}
123131

124132
- name: Publish
125133
run: uv publish --index testpypi

.github/workflows/publish.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,13 @@ jobs:
1616
uses: ./.github/workflows/test.yml
1717

1818
build:
19-
name: Build
19+
name: Build ${{ matrix.package }}
2020
runs-on: ubuntu-latest
21+
strategy:
22+
matrix:
23+
package:
24+
- uipath-llamaindex
25+
- uipath-openai-agents
2126

2227
needs:
2328
- lint
@@ -46,18 +51,23 @@ jobs:
4651
run: uv sync --all-extras
4752

4853
- name: Build
49-
run: uv build
54+
run: uv build --package ${{ matrix.package }}
5055

5156
- name: Upload artifacts
5257
uses: actions/upload-artifact@v4
5358
with:
54-
name: release-dists
59+
name: release-dists-${{ matrix.package }}
5560
path: dist/
5661

5762
pypi-publish:
58-
name: Upload release to PyPI
63+
name: Upload ${{ matrix.package }} to PyPI
5964
runs-on: ubuntu-latest
6065
environment: pypi
66+
strategy:
67+
matrix:
68+
package:
69+
- uipath-llamaindex
70+
- uipath-openai-agents
6171

6272
needs:
6373
- build
@@ -69,7 +79,7 @@ jobs:
6979
- name: Retrieve release distributions
7080
uses: actions/download-artifact@v4
7181
with:
72-
name: release-dists
82+
name: release-dists-${{ matrix.package }}
7383
path: dist/
7484

7585
- name: Publish package distributions to PyPI

README.md

Lines changed: 64 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1,125 +1,106 @@
1-
# UiPath LlamaIndex Python SDK
1+
# UiPath AI Agent Runtimes for Python
22

3-
[![PyPI - Version](https://img.shields.io/pypi/v/uipath-llamaindex)](https://pypi.org/project/uipath-llamaindex/)
4-
[![PyPI downloads](https://img.shields.io/pypi/dm/uipath-llamaindex.svg)](https://pypi.org/project/uipath-llamaindex/)
5-
[![Python versions](https://img.shields.io/pypi/pyversions/uipath-llamaindex.svg)](https://pypi.org/project/uipath-llamaindex/)
6-
7-
A Python SDK that enables developers to build and deploy LlamaIndex agents to the UiPath Cloud Platform. It provides programmatic interaction with UiPath Cloud Platform services and human-in-the-loop (HITL) semantics through Action Center integration.
3+
A collection of Python SDKs that enable developers to build and deploy AI agents to the UiPath Cloud Platform using different agent frameworks. These packages provide programmatic interaction with UiPath Cloud Platform services and human-in-the-loop (HITL) semantics through Action Center integration.
84

9-
This package is an extension to the [UiPath Python SDK](https://github.com/UiPath/uipath-python) and implements the [UiPath Runtime Protocol](https://github.com/UiPath/uipath-runtime-python).
5+
All packages are extensions to the [UiPath Python SDK](https://github.com/UiPath/uipath-python) and implement the [UiPath Runtime Protocol](https://github.com/UiPath/uipath-runtime-python).
106

11-
Check out these [sample projects](https://github.com/UiPath/uipath-llamaindex-python/tree/main/samples) to see the SDK in action.
7+
## Available Packages
128

13-
## Requirements
14-
15-
- Python 3.11 or higher
16-
- UiPath Automation Cloud account
17-
18-
## Installation
19-
20-
```bash
21-
pip install uipath-llamaindex
22-
```
9+
### UiPath LlamaIndex
2310

24-
using `uv`:
11+
[![PyPI - Version](https://img.shields.io/pypi/v/uipath-llamaindex)](https://pypi.org/project/uipath-llamaindex/)
12+
[![PyPI downloads](https://img.shields.io/pypi/dm/uipath-llamaindex.svg)](https://pypi.org/project/uipath-llamaindex/)
2513

26-
```bash
27-
uv add uipath-llamaindex
28-
```
14+
Build agents using the [LlamaIndex](https://www.llamaindex.ai/) framework with support for RAG, multiple LLM providers, and state persistence.
2915

30-
## Configuration
16+
- **Installation**: `pip install uipath-llamaindex`
17+
- **Documentation**: [packages/uipath-llamaindex/](packages/uipath-llamaindex/)
18+
- **Samples**: [packages/uipath-llamaindex/samples/](packages/uipath-llamaindex/samples/)
3119

32-
### Environment Variables
20+
### UiPath OpenAI Agents
3321

34-
Create a `.env` file in your project root with the following variables:
22+
[![PyPI - Version](https://img.shields.io/pypi/v/uipath-openai-agents)](https://pypi.org/project/uipath-openai-agents/)
3523

36-
```
37-
UIPATH_URL=https://cloud.uipath.com/ACCOUNT_NAME/TENANT_NAME
38-
UIPATH_ACCESS_TOKEN=YOUR_TOKEN_HERE
39-
```
24+
Build agents using [OpenAI's native Agents framework](https://platform.openai.com/docs/agents) for multi-agent coordination.
4025

41-
## Command Line Interface (CLI)
26+
- **Installation**: `pip install uipath-openai-agents`
27+
- **Documentation**: [packages/uipath-openai-agents/](packages/uipath-openai-agents/)
28+
- **Status**: ⚠️ Early development (v0.1.0)
4229

43-
The SDK provides a command-line interface for creating, packaging, and deploying LlamaIndex Agents:
30+
## Requirements
4431

45-
### Initialize a Project
32+
- Python 3.11 or higher
33+
- UiPath Automation Cloud account
4634

47-
```bash
48-
uipath init
49-
```
35+
## Quick Start
5036

51-
Running `uipath init` will process the workflow definitions in the `llama_index.json` file and create the corresponding `entry-points.json` file needed for deployment.
37+
Choose the agent framework that best fits your needs and follow the installation instructions for that package:
5238

53-
For more details on the configuration format, see the [UiPath configuration specifications](https://github.com/UiPath/uipath-python/blob/main/specs/README.md).
39+
- **LlamaIndex**: For RAG applications and stateful workflows → See [LlamaIndex documentation](packages/uipath-llamaindex/)
40+
- **OpenAI Agents**: For multi-agent systems → See [OpenAI Agents documentation](packages/uipath-openai-agents/)
5441

55-
### Authentication
42+
## Documentation
5643

57-
```bash
58-
uipath auth
59-
```
44+
- [Quick Start Guide](docs/quick_start.md)
45+
- [LlamaIndex Package Documentation](packages/uipath-llamaindex/)
46+
- [OpenAI Agents Package Documentation](packages/uipath-openai-agents/)
47+
- [Sample Projects](packages/uipath-llamaindex/samples/)
6048

61-
This command opens a browser for authentication and creates/updates your `.env` file with the proper credentials.
49+
## Monorepo Structure
6250

63-
### Debug a Project
51+
This repository is organized as a UV workspace with multiple packages:
6452

65-
```bash
66-
uipath run WORKFLOW [INPUT]
6753
```
68-
69-
Executes the agent with the provided JSON input arguments.
70-
71-
### Package a Project
72-
73-
```bash
74-
uipath pack
54+
uipath-llamaindex-python/
55+
├── packages/
56+
│ ├── uipath-llamaindex/ # LlamaIndex runtime
57+
│ └── uipath-openai-agents/ # OpenAI Agents runtime
58+
├── docs/ # Shared documentation
59+
└── pyproject.toml # Workspace configuration
7560
```
7661

77-
Packages your project into a `.nupkg` file that can be deployed to UiPath.
78-
79-
**Note:** Your `pyproject.toml` must include:
80-
81-
- A description field (avoid characters: &, <, >, ", ', ;)
82-
- Author information
83-
84-
Example:
62+
## Development
8563

86-
```toml
87-
description = "Your package description"
88-
authors = [{name = "Your Name", email = "your.email@example.com"}]
89-
```
64+
### Setting Up a Development Environment
9065

91-
### Publish a Package
66+
This repository uses [UV](https://docs.astral.sh/uv/) for workspace management:
9267

9368
```bash
94-
uipath publish
95-
```
96-
97-
Publishes the most recently created package to your UiPath Orchestrator.
69+
# Install UV
70+
curl -LsSf https://astral.sh/uv/install.sh | sh
9871

99-
## Project Structure
72+
# Clone the repository
73+
git clone https://github.com/UiPath/uipath-llamaindex-python.git
74+
cd uipath-llamaindex-python
10075

101-
To properly use the CLI for packaging and publishing, your project should include:
76+
# Install all dependencies
77+
uv sync --all-extras
10278

103-
- A `pyproject.toml` file with project metadata
104-
- A `llama_index.json` file with your workflow definitions (e.g., `"workflows": {"agent": "main.py:agent"}`)
105-
- A `entry-points.json` file (generated by `uipath init`)
106-
- A `bindings.json` file (generated by `uipath init`) to configure resource overrides
107-
- Any Python files needed for your automation
79+
# Run tests for all packages
80+
uv run pytest
10881

109-
## Development
82+
# Build a specific package
83+
uv build --package uipath-llamaindex
84+
uv build --package uipath-openai-agents
85+
```
11086

11187
### Developer Tools
11288

11389
Check out [uipath-dev](https://github.com/uipath/uipath-dev-python) - an interactive terminal application for building, testing, and debugging UiPath Python runtimes, agents, and automation scripts.
11490

115-
### Setting Up a Development Environment
91+
### Contributing
11692

117-
Please read our [contribution guidelines](https://github.com/UiPath/uipath-llamaindex-python/blob/main/CONTRIBUTING.md) before submitting a pull request.
93+
Please read our [contribution guidelines](CONTRIBUTING.md) before submitting a pull request.
11894

119-
### Special Thanks
95+
## Special Thanks
12096

12197
A huge thank-you to the open-source community and the maintainers of the libraries that make this project possible:
12298

123-
- [LlamaIndex](https://github.com/run-llama/llama_index) for providing a powerful framework for building stateful LLM applications.
124-
- [OpenInference](https://github.com/Arize-ai/openinference) for observability and instrumentation support.
125-
- [Pydantic](https://github.com/pydantic/pydantic) for reliable, typed configuration and validation.
99+
- [LlamaIndex](https://github.com/run-llama/llama_index) for providing a powerful framework for building stateful LLM applications
100+
- [OpenAI](https://github.com/openai) for the Agents framework and APIs
101+
- [OpenInference](https://github.com/Arize-ai/openinference) for observability and instrumentation support
102+
- [Pydantic](https://github.com/pydantic/pydantic) for reliable, typed configuration and validation
103+
104+
## License
105+
106+
See [LICENSE](LICENSE) for details.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# UiPath LlamaIndex SDK
2+
3+
Build intelligent AI agents with LlamaIndex and UiPath.
4+
5+
## Installation
6+
7+
```bash
8+
pip install uipath-llamaindex
9+
```
10+
11+
### Optional dependencies
12+
13+
For AWS Bedrock support:
14+
```bash
15+
pip install uipath-llamaindex[bedrock]
16+
```
17+
18+
For Google Vertex AI support:
19+
```bash
20+
pip install uipath-llamaindex[vertex]
21+
```
22+
23+
## Quick Start
24+
25+
See the [main repository documentation](../../docs/quick_start.md) for getting started guides and examples.
26+
27+
## Features
28+
29+
- **LlamaIndex Integration**: Build agents using LlamaIndex's powerful orchestration framework
30+
- **Multiple LLM Providers**: Support for OpenAI, Azure OpenAI, AWS Bedrock, and Google Vertex AI
31+
- **RAG Capabilities**: Built-in retrieval-augmented generation with context grounding
32+
- **State Management**: Resumable workflows with SQLite-based state persistence
33+
- **Breakpoints & HITL**: Human-in-the-loop support with debugging capabilities
34+
- **Observability**: Built-in tracing and instrumentation
35+
36+
## Documentation
37+
38+
Full documentation is available in the [main repository](https://github.com/UiPath/uipath-llamaindex-python).
39+
40+
## License
41+
42+
See [LICENSE](../../LICENSE) in the repository root.

0 commit comments

Comments
 (0)