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

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

dev -> main #716

wants to merge 170 commits into from

Conversation

whiterabbit1983
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]>
whiterabbit1983 and others added 20 commits October 16, 2024 20:01
<!-- ELLIPSIS_HIDDEN -->


> [!IMPORTANT]
> Add Prometheus metrics tracking to various API functions using a new
`increase_counter` decorator.
> 
>   - **Metrics**:
> - Add `increase_counter` decorator in `counters.py` to increment
Prometheus counters for function calls.
> - Apply `increase_counter` to multiple functions across various
models, including `create_agent`, `create_or_update_agent`,
`patch_agent`, `update_agent`, `create_doc`, `create_entries`,
`create_execution`, `create_execution_transition`,
`create_temporal_lookup`, `update_execution`,
`create_or_update_session`, `create_session`, `update_session`,
`create_or_update_task`, `create_task`, `patch_task`, `update_task`,
`create_tools`, `patch_tool`, `update_tool`, `create_or_update_user`,
`create_user`, `patch_user`, `update_user`.
>   - **Dependencies**:
> - Add `prometheus-client` to `pyproject.toml` for metrics tracking.
>   - **Misc**:
> - Add `total_tokens_per_user` counter in `metrics.py` to track token
usage per user in `chat.py`.
> 
> <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 fe315d7. 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]>
Co-authored-by: creatorrr <[email protected]>
### Description:
This pull request introduces a Personal Finance Tracker agent designed
to help users manage their expenses and budget effectively. The main
features include:

1. **Logging Expenses**: Users can log their expenses with details such
as amount, category, and description.
2. **Setting Budgets**: Users can set budget limits for specific
categories to help manage their spending.
3. **Sending Financial Advice**: The agent can send tailored financial
advice to users via email.

#### Key Components:
- **Agent Creation**: A `Personal Finance Tracker` agent is instantiated
using a unique UUID.
- **Task Definitions**: Three main tasks are defined in YAML:
  - **Log Expense**: Captures user expenses.
- **Set Budget**: Allows users to establish budget limits for
categories.
- **Send Financial Advice**: Sends financial advice to a specified email
address.
- **Execution Functions**: Functions to execute each task, providing
feedback to the user about the status of their actions.


<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Introduces a Personal Finance Tracker agent with tasks for logging
expenses, setting budgets, and sending financial advice, and updates
README with a Julep vs. LangChain comparison.
> 
>   - **Agent and Tasks**:
> - Introduces `Personal Finance Tracker` agent in
`cookbooks/15_personal_finance_tracker.py`.
> - Defines tasks: `Log Expense`, `Set Budget`, and `Send Financial
Advice` using YAML schemas.
>   - **Execution Functions**:
> - Adds `log_expense()`, `set_budget()`, and `send_financial_advice()`
functions to execute tasks and provide user feedback.
>   - **Documentation**:
> - Updates `README.md` with a new section "Why Julep vs. LangChain?"
comparing use cases and form factors.
> 
> <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 10d7e9d. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Co-authored-by: Mayank8881 <[email protected]>
… execution (#682)

<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Add `alpha` parameter to hybrid search in `execute_system()` with
default value 0.75 and adjust `confidence` default to 0.5.
> 
>   - **Behavior**:
> - Add `alpha` parameter to `HybridDocSearchRequest` in
`execute_system()` for hybrid search when both `text` and `vector` are
present.
>     - Default `alpha` value set to 0.75.
> - Change default `confidence` value from 0.7 to 0.5 in hybrid search
context.
> 
> <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 e67b64c. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Co-authored-by: HamadaSalhab <[email protected]>
- **feat(agents-api): Tweak the proximity indices**
- **feat(agents-api): Tweak queries for search**

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Enhances search functionality by adding NLP-based query generation,
adjusting search parameters, and updating database indices in the
`agents-api`.
> 
>   - **NLP Module**:
> - Added `nlp.py` for keyword extraction and query building using
spaCy.
> - Functions include `extract_keywords()`, `find_proximity_groups()`,
and `text_to_custom_query()`.
>   - **Search Functionality**:
> - Updated `search_docs_by_embedding()` in
`search_docs_by_embedding.py` to adjust `confidence` to 0.5 and `ef` to
32.
> - Modified `search_docs_by_text()` in `search_docs_by_text.py` to use
`paragraph_to_custom_queries()` for query generation.
>   - **Database Indices**:
> - Migration `migrate_1729114011_tweak_proximity_indices.py` updates
LSH and FTS indices for better proximity handling.
>   - **Dependencies**:
> - Added `spacy`, `en-core-web-sm`, and `msgpack` to `pyproject.toml`.
>     - Adjusted `numpy` version constraint in `pyproject.toml`.
> 
> <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 3018c6e. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: creatorrr <[email protected]>
Closes #678 
Closes #679 

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

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> This PR introduces remote data handling in the agents API to prevent
Temporal from running out of history size by storing large inputs and
outputs in a blob store.
> 
>   - **Activities**:
> - Add `save_inputs_remote_fn` and `load_inputs_remote_fn` in
`sync_items_remote.py` to handle large inputs by storing them in a blob
store.
> - Define `save_inputs_remote` and `load_inputs_remote` as activities.
>   - **Remote Handling**:
> - Introduce `RemoteObject`, `BaseRemoteModel`, and `RemoteList` in
`remote.py` to manage remote data storage and retrieval.
> - Modify `StepContext` in `tasks.py` to use `RemoteObject` for
`execution_input` and `inputs`.
>   - **Storage**:
> - Implement `store_in_blob_store_if_large` and
`load_from_blob_store_if_remote` in `storage_handler.py` to manage large
data.
> - Add `auto_blob_store_workflow` decorator for workflows to handle
remote data.
>   - **Workflows**:
> - Update `TaskExecutionWorkflow` in `task_execution/__init__.py` to
use remote activities for input/output handling.
> - Modify helper functions in `task_execution/helpers.py` to support
remote data handling.
>   - **Configuration**:
> - Change `blob_store_cutoff_kb` in `env.py` and `docker-compose.yml`
to 64KB and 128KB respectively for better data management.
> 
> <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 f7879d3. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

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


> [!IMPORTANT]
> Add system dependencies in `Dockerfile` and `Dockerfile.worker` to
support building Python packages with native extensions.
> 
>   - **Dependencies**:
> - Install `gcc`, `g++`, and development libraries in `Dockerfile` and
`Dockerfile.worker` to support building Python packages with native
extensions.
> - Libraries include `libssl-dev`, `libffi-dev`, `libbz2-dev`, among
others.
>   - **Dockerfiles**:
> - Update `Dockerfile` and `Dockerfile.worker` to include new
dependencies.
> 
> <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 4007541. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

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

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Add `clean` option to `extract_keywords` and filter empty queries in
`nlp.py`; update imports and defaults in `utils.py`.
> 
>   - **Behavior**:
> - Add `clean` parameter to `extract_keywords()` in `nlp.py` to
optionally strip non-alphanumeric characters.
> - Filter out empty queries in `paragraph_to_custom_queries()` in
`nlp.py`.
>   - **Imports**:
>     - Add `debug` to imports in `utils.py`.
>   - **Function Defaults**:
> - Change default `only_on_error` to `True` in `cozo_query()` in
`utils.py`.
> 
> <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 ca38891. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

Signed-off-by: Diwank Singh Tomer <[email protected]>
While reviewing the codebase, I noticed this bug in Jinja template.
<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Fixes Jinja template bug by replacing `agent.name` with `agent.about`
in relevant files.
> 
>   - **Bug Fix**:
> - Corrects Jinja template variable from `agent.name` to `agent.about`
in `default_system_template.md`, `julep-concepts.md`, and
`constants.tsp`.
> - Ensures `agent.about` is correctly displayed in templates when
available.
> 
> <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 463a0e6. It will automatically
update as commits are pushed.</sup>

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

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Fixes remote blob store loading in `transition_step` and JSON
serialization in `create_execution_transition`.
> 
>   - **Behavior**:
> - `transition_step` in `transition_step.py` now loads output from blob
store if remote using `load_from_blob_store_if_remote()`.
> - `create_execution_transition` in `create_execution_transition.py`
serializes `data.output` to JSON if it has `model_dump`.
>   - **Code Cleanup**:
> - Removed redundant `model_dump` function in
`task_execution/__init__.py`.
>   - **Misc**:
>     - Added `notebooks/Untitled*.ipynb` to `.gitignore`.
> 
> <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 6ea7aa0. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: creatorrr <[email protected]>
- **fix(agents-api): Fix tests related to docs**
- **fix(agents-api): Fix tests related to executions**
- **fix(agents-api): All tests pass (again)**

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Fix tests in `agents-api` by updating error handling, environment
variables, and test logic to ensure all tests pass.
> 
>   - **Error Handling**:
> - Add `CompleteAsyncError` to exception handling in `interceptors.py`
for `execute_activity` and `execute_workflow`.
>   - **Environment Variables**:
> - Add `use_blob_store_for_temporal`, `blob_store_bucket`,
`blob_store_cutoff_kb`, `s3_endpoint`, `s3_access_key`, and
`s3_secret_key` to `env.py`.
>   - **Document Models**:
> - Modify `get_doc.py` and `list_docs.py` to filter out `None`
embeddings.
>     - Update `search_docs_by_text.py` to handle empty `fts_queries`.
>   - **Execution Models**:
> - Fix `get_execution.py` and `list_executions.py` to check if `output`
is a dictionary before accessing `OUTPUT_UNNEST_KEY`.
>   - **Storage Handler**:
> - Add checks for `use_blob_store_for_temporal` in
`storage_handler.py`.
>   - **Tests**:
> - Remove `skip` decorator from `test_docs_queries.py` and
`test_execution_workflow.py`.
> - Add new test cases in `test_workflow_routes.py` for YAML task
creation and execution.
> 
> <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 7f53f2c. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: creatorrr <[email protected]>
…cording to naming convention (#707)

<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Fix bugs in cookbooks 5, 10, 11 and rename files for consistency.
> 
>   - **Behavior**:
> - `05-Basic_Agent_Creation_and_Interaction.py`: Fix session creation
by removing `context_overflow` parameter and correct chat history
retrieval.
> - `10-Document_Management_and_Search.py`: Remove `filters` from search
input and fix document search output handling.
> - `11-Advanced_Chat_Interactions.py`: Adjust chat logic for weather
information and improve context management.
>   - **Renames**:
> - Rename `14_automated_webinar_scheduling_workflow.py` to
`14-Automated_Webinar_Scheduling_Workflow.py`.
> - Rename `15_personal_finance_tracker.py` to
`15-Personal_Finance_Tracker.py`.
> - Rename `e_commerce_order_processing_workflow.py` to
`16-E_commerce_Order_Processing_Workflow.py`.
> 
> <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 7cdfd86. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

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

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Update `README.md` and related files to improve Table of Contents
visibility and content clarity.
> 
>   - **README.md**:
> - Changed `<details>` to `<details open>` for Table of Contents
visibility.
>     - Refined Julep's capabilities description for clarity.
> - Added reference to "Understanding Tasks" in the introductory tip.
>     - Included a mermaid sequence diagram to illustrate workflow.
>   - **doctoc-on-push.yml**:
>     - Set `FOLDING` to `false` to keep Table of Contents expanded.
> 
> <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 8bc4453. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: creatorrr <[email protected]>
…ations" (#710)

- **fix(integrations): General upkeep + tenacity retry**
- **feat(agents-api): Misc fixes in agents-api**

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Add `tenacity` retry logic to integration functions, remove unused
integrations, and improve agents-api and integrations services.
> 
>   - **Integrations**:
> - Add `tenacity` retry logic to `search()` in `brave.py`, `load()` in
`browserbase.py`, `send()` in `email.py`, `crawl()` in `spider.py`,
`get()` in `weather.py`, and `search()` in `wikipedia.py`.
> - Remove unused integrations: `dalle_image_generator.py`,
`duckduckgo_search.py`, `gmail/send_mail.py`, `hacker_news.py`, and
`request.py`.
>     - Remove `hacker_news` provider from `providers.py`.
>   - **Agents API**:
> - Update `log_step()` in `log_step.py` to include
`include_remote=True` in `context.model_dump()`.
>     - Add `NEWLINE` constant to `utils.py` and `template.py`.
> - Add `ApplicationError` to non-retryable exceptions in
`interceptors.py`.
> - Increase sleep time in `test_doc()` in `fixtures.py` from 0.1 to 0.5
seconds.
>   - **Misc**:
> - Remove unused imports in `base_models.py`, `email.py`,
`wikipedia.py`, `get_integration.py`, and `execute_integration.py`.
>     - Add `tenacity` to `pyproject.toml` dependencies.
> 
> <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 55fe24a. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
This PR updates the translated versions of README.md

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Copy link

gitguardian bot commented Oct 19, 2024

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
14144715 Triggered Generic Password ca03414 deploy/simple-docker-compose.yaml View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

ayush2390 and others added 9 commits October 19, 2024 18:54
<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Updated documentation to reflect recent changes in Julep, including
API references, guides, and tutorials for improved clarity and accuracy.
> 
>   - **README Updates**:
> - Updated table of contents in `README-CN.md`, `README-FR.md`,
`README-JA.md` to reflect new sections and structure.
> - Corrected and streamlined content in `README.md` for clarity and
consistency.
>   - **API Documentation**:
> - Removed construction notices from `docs/api-reference/README.md`,
`agents-api-1.md`, `agents-api-2.md`, `agents-api-3.md`,
`agents-api-4.md`, `agents-api.md`.
> - Updated API endpoint details in `agent_endpoints.md`,
`doc_endpoints.md`, `session_endpoints.md`, `tool_endpoints.md`,
`user_endpoints.md`.
>   - **Concepts and Explanations**:
> - Enhanced descriptions and examples in `agents.md`, `documents.md`,
`sessions/README.md`, `adaptive-context.md`, `users.md`.
> - Clarified core concepts in `core_concepts.md`,
`default_system_template.md`, `execution_state_machine.md`,
`metadata_precedence.md`, `multi_agent_sessions.md`,
`task_workflows.md`, `tool_integration.md`.
>   - **How-to Guides**:
> - Improved task customization and execution handling in
`customizing_tasks.md`, `handling_executions.md`.
> - Updated user and session management guides in `managing_users.md`,
`using_chat_features.md`.
>   - **Tutorials**:
> - Refined steps and examples in `creating_your_first_agent.md`,
`integrating_tools.md`, `managing_sessions.md`.
> 
> <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 5dac7ad. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Co-authored-by: ayush2390 <[email protected]>
This PR updates the translated versions of README.md

---------

Co-authored-by: ayush2390 <[email protected]>
Co-authored-by: ayush2390 <[email protected]>
Co-authored-by: ayush2390 <[email protected]>
This PR updates the translated versions of README.md

Co-authored-by: creatorrr <[email protected]>
…ctivity (#726)

<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Increase timeout to 60 seconds for `AsyncClient` in
`run_integration_service` to allow longer execution times.
> 
>   - **Behavior**:
> - Increase timeout to 60 seconds for `AsyncClient` in
`run_integration_service` function in `integrations.py` to allow longer
execution times for integration activities.
> 
> <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 f62a392. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->
- Changed the workflow to include a step to summarize the crawled
results.
- Added better comments, markdown cells & cells outputs.
…cument creation endpoints (#715)

<!-- ELLIPSIS_HIDDEN -->


> [!IMPORTANT]
> Adds `embed_instruction` argument to document creation and embedding
endpoints, updating models and OpenAPI spec accordingly.
> 
>   - **Behavior**:
> - Adds `embed_instruction` argument to `CreateDocRequest` and
`EmbedQueryRequest` in `Docs.py`.
> - Updates `create_doc()` in `create_doc.py` to handle
`embed_instruction` by removing it from `doc_data`.
> - Modifies `run_embed_docs_task()` in `create_doc.py` to pass
`embed_instruction`.
> - Updates `embed()` in `embed.py` to prepend `embed_instruction` to
`text_to_embed`.
>   - **OpenAPI Specification**:
> - Adds `embed_instruction` to `CreateDocRequest` and
`EmbedQueryRequest` models in `models.tsp`.
> - Updates `openapi-0.4.0.yaml` and `openapi-1.0.0.yaml` to include
`embed_instruction` in required properties for `CreateDocRequest` and
`EmbedQueryRequest`.
> 
> <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 b68ab1d. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Co-authored-by: HamadaSalhab <[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.