Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dev -> main #582

Open
wants to merge 41 commits into
base: main
Choose a base branch
from
Open

dev -> main #582

wants to merge 41 commits into from

Conversation

creatorrr
Copy link
Contributor

No description provided.

HamadaSalhab and others added 30 commits September 30, 2024 15:43
<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Implement `ToolCallStep` and fix transition logic after `PromptStep`
in workflow execution.
> 
>   - **ToolCallStep Implementation**:
> - Implements `tool_call_step()` in `tool_call_step.py` to handle tool
calls, including generating a call ID and validating tool names.
> - Updates `STEP_TO_ACTIVITY` in `task_execution/__init__.py` to map
`ToolCallStep` to `tool_call_step()`.
>   - **PromptStep Transition Fix**:
> - Updates transition logic in `task_execution/__init__.py` to handle
tool calls after a `PromptStep`.
> - Removes unused code related to tool calls in `PromptStep` handling.
>   - **State Machine Update**:
> - Updates `valid_transitions` in `tasks.py` to allow 'wait' to 'step'
transition.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 5ab9e3a. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->
Signed-off-by: Diwank Singh Tomer <[email protected]>

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> This PR updates the handling of integrations and systems by adding new
models, updating workflows, and modifying session options, along with
dependency updates and a migration script.
> 
>   - **Behavior**:
> - Adds `execute_integration` function in `execute_integration.py` to
handle integration tool calls.
> - Updates `prompt_step.py` to handle unwrapping of prompt responses
and tool call results.
> - Modifies `tool_call_step.py` to handle tool calls using `Tool`
model.
>   - **Models**:
>     - Adds `IntegrationDef` and `SystemDef` models in `Tools.py`.
> - Updates `CreateToolRequest`, `PatchToolRequest`,
`UpdateToolRequest`, and `Tool` to use `IntegrationDef` and `SystemDef`.
> - Adds `forward_tool_results` option to session models in
`Sessions.py`.
>   - **Workflow**:
> - Updates `TaskExecutionWorkflow` in `task_execution/__init__.py` to
handle integration tool calls.
>   - **Dependencies**:
> - Updates `@typespec/*` dependencies in `package.json` to version
`0.60.x`.
>   - **Migration**:
> - Adds migration script
`migrate_1727235852_add_forward_tool_calls_option.py` to add
`forward_tool_calls` option to sessions.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for a49aa12. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Introduces a new integration service with FastAPI, Docker setup, and support for multiple integrations like DALL-E and Wikipedia.

- Integration Service:
  + Adds integrations-service with Docker setup in docker-compose.yml and Dockerfile.
  + FastAPI application in web.py with routers for execution and integration management.
- Models:
  + Defines models for DalleImageGenerator, DuckDuckGoSearch, HackerNews, Weather, and Wikipedia in models directory.
  + IntegrationExecutionRequest and IntegrationExecutionResponse for handling execution requests.
- Utilities:
  + Implements execute_integration in execute_integration.py to handle integration execution logic.
  + Integration utilities for DALL-E, DuckDuckGo, Hacker News, Weather, and Wikipedia in utils/integrations.
- Configuration:
  + Adds pyproject.toml for dependency management with Poetry.
  + Adds pytype.toml for type checking configuration.
#521)

- **fix(typespec,agents-api): Rename integration providers**
- **feat(agents-api,integrations): Working integrations for tool-call
step**

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Add integration service handling for tool-call steps in agents API,
including provider renames and workflow updates.
> 
>   - **Integrations**:
> - Implement `run_integration_service` in `clients/integrations.py` to
handle integration service calls.
> - Update `execute_integration` in `activities/execute_integration.py`
to use `run_integration_service` for non-dummy providers.
> - Add `INTEGRATION_SERVICE_URL` to `.env.example`, `env.py`, and
`docker-compose.yml`.
>   - **Renames**:
> - Rename integration providers in `Tools.py` and `scalars.tsp` (e.g.,
`dall-e` to `dalle_image_generator`).
>   - **Workflows**:
> - Update `task_execution/__init__.py` to handle integration tool calls
using `execute_integration`.
>   - **Tests**:
>     - Add `integration_example.yaml` for sample tasks.
> - Add tests for integration tool calls in
`test_execution_workflow.py`.
> - Add `patch_integration_service` in `utils.py` for mocking
integration service calls.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for f13f8dd. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Removes unnecessary transition call in `WaitForInputStep` case in
`TaskExecutionWorkflow.run()` and updates tests accordingly.
> 
>   - **Behavior**:
> - Removes `await transition(context, type="wait", output=output)` from
`WaitForInputStep` case in `run()` in `__init__.py`.
>   - **Tests**:
> - Updates `test_execution_workflow.py` to ensure workflow behaves
correctly without the removed transition call.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 6600cee. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->
…d Upgrade to python 3.12 (#525)

Signed-off-by: Diwank Singh Tomer <[email protected]>

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Upgrade to Python 3.12 and add support for reading setup arguments
from metadata in `agents-api`.
> 
>   - **Python Version Upgrade**:
> - Upgrade Python to 3.12 in `.tool-versions`, `Dockerfile`,
`Dockerfile.worker`, `pyproject.toml`, and `pytype.toml`.
>   - **Setup Arguments from Metadata**:
> - `execute_integration()` in `execute_integration.py` now reads setup
arguments from metadata.
> - `get_tool_args_from_metadata()` in `get_tool_args_from_metadata.py`
updated to handle `arg_type` for "args" and "setup".
>   - **CI and Documentation**:
>     - Delete `generate-docs.yml` workflow.
> - Update `lint-and-format.yml` to focus on `agents-api` and use Python
3.12.
>     - Update `pytype` version in `pyproject.toml`.
> - Change `x-tool-parameters` to `x-integration-args` in
`julep-concepts.md`.
>     - Adjust backup schedule in `docker-compose.yml` from 1h to 3h.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for b1c0615. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Introduce Docker Bake for building and pushing images with updated GitHub Actions workflows and Dockerfiles.

  - **GitHub Actions Workflows**:
    - Add `.github/workflows/dev-push-to-hub.yml` and `.github/workflows/main-push-to-hub.yml` for building and pushing images on `dev` and `main` branch merges.
    - Remove `push-to-hub.yml` workflow.
  - **Docker Build System**:
    - Introduce `docker-bake.hcl` for defining Docker build targets and configurations.
    - Update Dockerfiles in `agents-api`, `agents-api.worker`, `agents-api.migration` to use Docker Bake.
  - **Documentation**:
    - Update `CONTRIBUTING.md` with instructions for building Docker images using Docker Bake.
  - **Miscellaneous**:
    - Add submodules for `sdks/node-sdk` and `sdks/python-sdk`.
  - **GitHub Actions**:
    - Add `docker-bake-on-pr.yml` for baking images on pull requests.
    - Rename `dev-push-to-hub.yml` to `bake-push-to-hub.yml` and `main-push-to-hub.yml` to `latest-push-to-hub.yml`.
    - Update `bake-push-to-hub.yml` and `latest-push-to-hub.yml` to use `docker/bake-action@v5` and remove branch name and git sha setting steps.
Update GitHub Actions workflow to generate changelog from release notes on release event.

  - **Workflow Changes**:
    - Renames workflow from `Changelog CI` to `Changelog on release` in `.github/workflows/changelog-ci.yml`.
    - Changes trigger from `pull_request` to `release` with type `published`.
  - **Actions**:
    - Updates `actions/checkout` from `v2` to `v4` with `fetch-depth: 0` and `ref: dev`.
    - Replaces `saadmk11/[email protected]` with `rhysd/changelog-from-release/action@v3` to generate changelog from release notes.
Enhance workflows to bake images on release and generate changelogs from release notes.

  - **Workflows**:
    - Update `.github/workflows/bake-push-to-hub.yml` to trigger on `release` events in addition to `push` to `dev` and tags `v*`.
    - Update `.github/workflows/changelog-ci.yml` to trigger on `release` events and generate changelog from release notes using `rhysd/changelog-from-release/action@v3`.
  - **Workflow Addition**:
    - Adds `bandit-security-check-python-agents-api.yml` to `.github/workflows/`.
    - Triggers on pull requests to the `main` branch.
  - **Security Check**:
    - Uses `mdegis/[email protected]` to check Python code in `./agents-api/agents_api`.
    - Configured with `level: high` and `confidence: high`.
    - `exit_zero: true` allows workflow to pass even if issues are found.
  - **Workflow Configuration**:
    - Adds `dev` branch to trigger `bandit-security-check-python-agents-api.yml` workflow.
    - Updates Bandit action version from `v1.1` to `v1.0.1` in the workflow.
…ons service (#540)

Add new integrations for Brave, BrowserBase, and Spider, and refactor the integration service to support these changes.

  - **Integrations**:
    - Add new providers: `brave`, `browserbase`, and `spider` in `providers.py`.
    - Refactor existing providers: `wikipedia`, `weather`, `hacker_news`.
  - **Models**:
    - Add `BraveSearchSetup`, `BraveSearchArguments`, `BraveSearchOutput` in `brave.py`.
    - Add `BrowserBaseSetup`, `BrowserBaseLoadArguments`, `BrowserBaseLoadOutput` in `browserbase.py`.
    - Add `SpiderSetup`, `SpiderFetchArguments`, `SpiderFetchOutput` in `spider.py`.
    - Update `ExecutionRequest`, `ExecutionResponse` in `execution.py` to include new providers.
  - **Routers**:
    - Add `get_integration` in `get_integration.py`.
    - Add `get_integration_tool` in `get_integration_tool.py`.
    - Update `execute` in `execute.py` to handle new providers and methods.
  - **Utilities**:
    - Refactor `execute_integration` in `execute_integration.py` to dynamically load and execute provider methods.
    - Add integration logic for new providers in `integrations/utils/integrations/`.
  - **Misc**:
    - Update `pyproject.toml` to include new dependencies: `spider-client`, `browserbase`.
    - Update `scalars.tsp` and `models.tsp` to include new integration providers.
Updated the main image 1-line description
<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Improves task execution updates by encoding task tokens with metadata
and enhancing error handling in `raise_complete_async.py` and
`update_execution.py`.
> 
>   - **Behavior**:
> - In `raise_complete_async.py`, task tokens are now base64 encoded and
include metadata with activity, run, and workflow IDs.
> - In `update_execution.py`, added error handling for stopping and
resuming executions, using metadata for async activity handle retrieval.
>   - **Database Queries**:
> - In `get_paused_execution_token.py`, query updated to include
`metadata` and sort by `created_at` with a limit of 1.
>   - **Error Handling**:
> - Added try-except blocks in `update_execution.py` to handle
exceptions when stopping or resuming executions.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for f3de527. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: Diwank Singh Tomer <[email protected]>
<!-- ELLIPSIS_HIDDEN -->


> [!IMPORTANT]
> Fixes `name` attribute in `get_job_status` in `routers.py` and updates
string encoding and exception syntax in other files.
> 
>   - **Behavior**:
> - Fixes `name` attribute in `get_job_status` function in `routers.py`
to use `job_description.workflow_type` instead of `handle.id`.
>   - **Formatting**:
> - Adjusts string encoding in `raise_complete_async.py` and
`update_execution.py` to use double quotes for `ascii`.
> - Updates exception raising syntax in `update_execution.py` for
consistency.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for bfc8490. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->
…RIBUTING.md file (#543)

Added temporal payload decoding route, updated setup instructions in `CONTRIBUTING.md`, and modified Docker and FastAPI configurations.

  - **New Features**:
    - Added `/temporal/decode` route in `router.py` for decoding temporal payloads using `PydanticEncodingPayloadConverter`.
  - **Documentation**:
    - Updated `CONTRIBUTING.md` with setup instructions, including environment setup, Docker volume creation, and running the project in single or multi-tenant mode.
  - **Configuration**:
    - Added `internal.router` to `web.py` to include the new internal routes.
    - Updated `docker-compose.yml` to expose port `8080` for `agents-api` and `agents-api-multi-tenant` services.
<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Add `README.md` to `cookbooks` with Jupyter notebook overview and
Colab links.
> 
>   - **Documentation**:
>     - Adds `README.md` to `cookbooks` directory.
>     - Provides an overview of Jupyter notebooks for AI tasks.
> - Includes Colab links for each notebook:
`01-Website_Crawler_using_Spider.ipynb`,
`02-Sarcastic_News_Headline_Generator.ipynb`,
`03-SmartResearcher_With_WebSearch.ipynb`,
`04-TripPlanner_With_Weather_And_WikiInfo.ipynb`.
>     - Contact information and contribution guidelines included.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for a1ad58e. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: Diwank Singh Tomer <[email protected]>
…pressions in task creation | Add validation for subworkflows (#570)

Closes #535 

<!-- ELLIPSIS_HIDDEN -->


> [!IMPORTANT]
> Add static validation for Python expressions and Jinja templates in
task creation and validate subworkflows in `openapi_model.py` and
`steps.tsp`.
> 
>   - **Validation**:
> - Add `validate_python_expression()` and `validate_jinja_template()`
in `openapi_model.py`.
> - Integrate validation into `EvaluateStep`, `ToolCallStep`,
`PromptStep`, `SetStep`, `LogStep`, `ReturnStep`, `YieldStep`,
`IfElseWorkflowStep`, and `MapReduceStep` in `openapi_model.py`.
>   - **Models**:
> - Update `CreateTaskRequest` in `openapi_model.py` to validate
subworkflows using `WorkflowType`.
> - Add `YieldStep` to `MappableWorkflowStep` and
`NonConditionalWorkflowStep` in `steps.tsp`.
>   - **Misc**:
>     - Reorder `YieldStep` in `Tasks.py` to maintain consistency.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 9952ad5. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Co-authored-by: Diwank Singh Tomer <[email protected]>
Signed-off-by: Diwank Singh Tomer <[email protected]>

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Adds detailed code reading and contributing instructions to
`CONTRIBUTING.md`, covering project architecture, setup, and
contribution guidelines.
> 
>   - **Documentation**:
>     - Adds detailed code reading instructions to `CONTRIBUTING.md`.
> - Includes sections on project overview, system architecture, API
specifications, core API implementation, database and storage, workflow
management, testing, and additional services.
> - Provides a step-by-step guide for setting up the development
environment and contributing to the project.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 4bb3e8c. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
…573)

Signed-off-by: Diwank Singh Tomer <[email protected]>

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Refactor validation logic using monkeypatching and add new models and
custom types in `openapi_model.py`.
> 
>   - **Validation Refactor**:
> - Switch from subclassing to monkeypatching for validation functions
in `EvaluateStep`, `ToolCallStep`, `PromptStep`, `SetStep`, `LogStep`,
`ReturnStep`, `YieldStep`, `IfElseWorkflowStep`, and `MapReduceStep`.
>     - Add validators for Python expressions and Jinja templates.
>   - **Model Changes**:
>     - Add `CreateTransitionRequest` and `CreateEntryRequest` classes.
> - Define custom types `ChatMLContent`, `ChatMLRole`, `ChatMLSource`,
`ExecutionStatus`, and `TransitionType`.
>   - **Misc**:
> - Allow extra fields in `CreateTaskRequest`, `PatchTaskRequest`, and
`UpdateTaskRequest` using `ConfigDict`.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 8c03d93. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

Signed-off-by: Diwank Singh Tomer <[email protected]>
HamadaSalhab and others added 9 commits October 3, 2024 21:01
This was uploaded by mistake
This PR is to fix the issue mentioned in #572  
I have made the required changes in the files create_agent.py,
create_or_update_agent.py and delete_agent.py. I have added descriptions
to QueryException, ValidationError and TypeError.
<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Enhanced error messages for exceptions in agent-related files to
provide detailed guidance on potential issues.
> 
>   - **Error Messages**:
> - Enhanced error messages for `QueryException`, `ValidationError`, and
`TypeError` in `create_agent.py`, `create_or_update_agent.py`, and
`delete_agent.py`.
> - `QueryException`: Now includes a detailed message about potential
causes related to database query failures.
> - `ValidationError`: Provides guidance on checking input data for
missing or incorrect fields.
> - `TypeError`: Describes type mismatch issues and suggests reviewing
input data types.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 049d7ee. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

Co-authored-by: Diwank Singh Tomer <[email protected]>
…finition (#574)

Signed-off-by: Diwank Singh Tomer <[email protected]>

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Removed 'type' property from tool classes and added computed 'type'
property using a function in `Tools.py`, `openapi_model.py`, and
`tasks.py`.
> 
>   - **Behavior**:
> - Removed `type` property from `CreateToolRequest`, `NamedToolChoice`,
`PatchToolRequest`, `Tool`, and `UpdateToolRequest` in `Tools.py`.
> - Added computed `type` property to `TaskTool`, `Tool`,
`UpdateToolRequest`, and `PatchToolRequest` in `openapi_model.py`.
> - Updated `task_to_spec()` in `tasks.py` to use computed `type`
property.
>   - **Misc**:
> - Removed `type` property from `Tool` and `NamedToolChoice` in
`models.tsp`.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 289e87e. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

Signed-off-by: Diwank Singh Tomer <[email protected]>
Related to #568

Enhanced HTTPException in `create_agent.py` and `delete_agent.py`.

As this issue states, we aim to improve error messages throughout the
agents-api. I believe this issue can accommodate multiple pull requests.
Your suggestions are highly appreciated.
<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Enhanced error messages in `create_agent.py` and `delete_agent.py` for
better clarity in `HTTPException` details.
> 
>   - **Error Messages**:
> - In `create_agent.py`, updated `HTTPException` detail to "Developer
not found. Please ensure the provided auth token (which refers to your
developer_id) is valid and the developer has the necessary permissions
to create an agent."
> - In `delete_agent.py`, updated `HTTPException` detail to "The
specified developer does not own the requested resource. Please verify
the ownership or check if the developer ID is correct."
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for a085d41. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

Co-authored-by: Diwank Singh Tomer <[email protected]>
…imit=1 to all relevant queries (#580)

Signed-off-by: Diwank Singh Tomer <[email protected]>

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Improve CozoDB query performance by adding `:limit 1` to relevant
queries and restructure CI/CD workflows for agents-api.
> 
>   - **Performance Improvement**:
> - Add `:limit 1` to CozoDB queries in `get_agent.py`,
`get_cached_response.py`, and `prepare_chat_context.py` among others to
improve query performance.
>   - **CI/CD Workflow**:
> - Rename `lint-and-format.yml` to `lint-agents-api-pr.yml` and remove
typecheck and test steps.
>     - Add `test-agents-api-pr.yml` for running tests on pull requests.
> - Add `typecheck-agents-api-pr.yml` for type-checking on pull
requests.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 4cd6bb0. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
This PR includes:
- Adding, formatting and improving of docstring comments
- Updating absolute imports to relative imports (similar to other files)


<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Improved docstrings, switched to relative imports, and used a constant
for `EMBEDDING_SIZE` for better code clarity and consistency.
> 
>   - **Docstrings**:
> - Improved and formatted docstrings across multiple files for clarity
and consistency.
> - Added detailed attribute descriptions in exception classes like
`AgentNotFoundError` and `UserNotFoundError`.
>   - **Imports**:
> - Updated absolute imports to relative imports in files like
`truncation.py`, `worker.py`, and `messages.py` for consistency.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for c27aebf. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Co-authored-by: Diwank Singh Tomer <[email protected]>
creatorrr and others added 2 commits October 4, 2024 06:23
- **Add optional description field to agent tools**
- **feat(typespec): Add API call tool definition type**

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Add API call tool type and description field to agent tools, updating
models and types accordingly.
> 
>   - **Behavior**:
> - Adds `ApiCallDef` and `ApiCallDefUpdate` classes in `Tools.py` to
define API call tools.
> - Adds `api_call` field to `CreateToolRequest`, `PatchToolRequest`,
`UpdateToolRequest`, and `Tool` classes in `Tools.py`.
> - Adds `description` field to `CreateToolRequest`, `PatchToolRequest`,
`UpdateToolRequest`, and `Tool` classes in `Tools.py`.
> - Updates `prepare_chat_context.py` and `prepare_execution_input.py`
to include `description` in tool data.
> - Implements `execute_api_call()` in `excecute_api_call.py` to handle
API call execution.
>   - **Types**:
>     - Adds `httpMethod` alias in `scalars.tsp` for valid HTTP methods.
>     - Defines `ApiCallDef` model in `models.tsp` for API call tools.
>   - **Misc**:
> - Updates `create_tools.py` and `list_tools.py` to handle
`description` field in tool records.
> - Adds migration `migrate_1727922523_add_description_to_tools.py` to
add `description` field to tools table.
> - Adds test `workflow: tool call api_call` in
`test_execution_workflow.py` to verify API call tool functionality.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 326067a. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: HamadaSalhab <[email protected]>
Co-authored-by: vedantsahai18 <[email protected]>
Co-authored-by: creatorrr <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants