From be8e294dc97dc02522cf2a9b138c36fff5205e23 Mon Sep 17 00:00:00 2001 From: antonkulaga Date: Wed, 8 Jan 2025 18:52:03 +0200 Subject: [PATCH] examples cleanup --- coding/pyproject.toml | 4 +- config/agent_profiles.yaml | 21 ++-- core/pyproject.toml | 9 +- .../examples/coding/bioinformatic_agent.py | 27 ----- .../examples/coding/bioinformatic_agent.yaml | 112 ------------------ .../examples/coding/code_agent.yaml | 103 ---------------- .../examples/coding/code_agent_biopython.py | 4 +- .../examples/coding/code_agent_genomics.py | 19 --- .../coding/code_agent_scRNA_analysis.py | 24 ---- .../just_agents/examples/coding/cot_dev.py | 2 +- examples/notebooks/01_just_agents_colab.ipynb | 100 ++-------------- examples/notebooks/02_sqlite_example.ipynb | 6 +- examples/notebooks/03_coding_agent.ipynb | 6 +- examples/pyproject.toml | 16 +-- poetry.lock | 111 ++++++++++++----- pyproject.toml | 16 +-- router/pyproject.toml | 7 +- tools/just_agents/tools/db.py | 0 tools/pyproject.toml | 7 +- web/poetry.lock | 6 +- web/pyproject.toml | 7 +- 21 files changed, 147 insertions(+), 460 deletions(-) delete mode 100644 examples/just_agents/examples/coding/bioinformatic_agent.py delete mode 100644 examples/just_agents/examples/coding/bioinformatic_agent.yaml delete mode 100644 examples/just_agents/examples/coding/code_agent.yaml delete mode 100644 examples/just_agents/examples/coding/code_agent_genomics.py delete mode 100644 examples/just_agents/examples/coding/code_agent_scRNA_analysis.py create mode 100644 tools/just_agents/tools/db.py diff --git a/coding/pyproject.toml b/coding/pyproject.toml index f9ad12c..2ae1ff7 100644 --- a/coding/pyproject.toml +++ b/coding/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "just-agents-coding" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - Coding Components" authors = [ "Alex Karmazin ", @@ -19,7 +19,7 @@ license = "MIT" [tool.poetry.dependencies] python = ">=3.10,<4.0" -just-agents-core = ">=0.4.5" +just-agents-core = ">=0.4.6" llm-sandbox = ">=0.1.8" [build-system] diff --git a/config/agent_profiles.yaml b/config/agent_profiles.yaml index f05f565..94b2e23 100644 --- a/config/agent_profiles.yaml +++ b/config/agent_profiles.yaml @@ -1,22 +1,23 @@ SecretaryAgent: autoload_from_yaml: false - backstory: Developed to assist in the analysis and description of AI agents. + backstory: The SecretaryAgent is designed to assist in the analysis and description + of AI agents, leveraging its specialized training. class_qualname: just_agents.router.secretary_agent.SecretaryAgent - description: A skilled AI assistant focused on creating concise and informative - profiles for AI agents. - expertise_domain: AI analysis and profiling + description: A skilled AI assistant focused on creating detailed profiles for AI + agents. + expertise_domain: AI agent analysis and description extra_dict: personality_traits: Agent's personality traits go here - goal: To provide accurate and detailed descriptions of AI agents. + goal: To generate concise and detail-rich profiles for AI agents. knowledge_sources: [] - limitations: May not have access to real-time data or external databases. + limitations: Limited to the information available up to October 2023. llm_options: model: gpt-4o-mini temperature: 0.0 model_name: gpt-4o-mini - personality_traits: A skilled, detail-oriented, and concise AI assistant focused - on analysis and description of AI agents. - role: AI Assistant + personality_traits: A detail-oriented and analytical AI assistant with a focus on + clarity and conciseness. + role: AI assistant specializing in agent analysis. system_prompt: |2- You are a skilled AI assistant specializing in analysis and description of AI agents. @@ -26,7 +27,7 @@ SecretaryAgent: Only populate fields based on the well-established information, don't make up anything. Double-check that the output contains only a valid JSON with all the fields specified in PROFILE_UPDATE_TEMPLATE. Never include any additional text or explanations in your reply. - task: Generate detailed profiles for AI agents based on provided attributes. + task: Profile generation based on available attributes. agent_profiles: SecretaryAgent: autoload_from_yaml: false diff --git a/core/pyproject.toml b/core/pyproject.toml index ba785a3..790f179 100644 --- a/core/pyproject.toml +++ b/core/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "just-agents-core" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - Base Package" authors = [ "Alex Karmazin ", @@ -30,15 +30,16 @@ classifiers = [ [tool.poetry.dependencies] python = ">=3.10,<4.0" -litellm = ">=1.52.14" +litellm = ">=1.57.2" pydantic = ">=2.0.0,<3.0.0" Deprecated = ">=1.2.15" requests = "*" numpydoc = "*" +python-dotenv = ">=1.0.1" [tool.poetry.group.dev.dependencies] -pytest = "^7.4.4" -python-dotenv = "*" +pytest = ">=8.3.4" + [tool.poetry.urls] Homepage = "https://github.com/longevity-genie/just-agents" diff --git a/examples/just_agents/examples/coding/bioinformatic_agent.py b/examples/just_agents/examples/coding/bioinformatic_agent.py deleted file mode 100644 index 9653cb5..0000000 --- a/examples/just_agents/examples/coding/bioinformatic_agent.py +++ /dev/null @@ -1,27 +0,0 @@ -from dotenv import load_dotenv -from just_agents.simple.cot_agent import ChainOfThoughtAgent -from just_agents.simple.utils import build_agent - -from just_agents.examples.coding.mounts import coding_examples_dir -from just_agents.simple.utils import build_agent - -load_dotenv(override=True) - -""" -This example shows how to use a Chain Of Thought code agent to run python code and bash commands. -It uses volumes (see tools.py) and is based on Chain Of Thought Agent class. -Note: current example is a work in progress and the task is too complex to get it solved in one go. - - -WARNING: This example is not working as expected, some of GSE-s are messed up -""" - -if __name__ == "__main__": - agent = build_agent(coding_examples_dir / "bioinformatic_agent.yaml") - query_GSE137317 = "Download gene counts from GSE137317, split them by conditions, make PCA plot and differential expression analysis using only python libraries" - #query_GSE144600 = "Download gene counts from GSE144600" - #query_two = "add GSE137317 and GSE144600 to the same PCA plot" - - #query = "Take two nutritional datasets (GSE176043 and GSE41781) and three partial reprogramming datasets (GSE148911, GSE190986 and GSE144600), download them from GEO and generate PCA plot with them in /output folder" - result, thoughts = agent.query(query_GSE137317) - diff --git a/examples/just_agents/examples/coding/bioinformatic_agent.yaml b/examples/just_agents/examples/coding/bioinformatic_agent.yaml deleted file mode 100644 index e9eaf63..0000000 --- a/examples/just_agents/examples/coding/bioinformatic_agent.yaml +++ /dev/null @@ -1,112 +0,0 @@ -class: "ChainOfThoughtAgent" -system_prompt: "You are a bioinformatician AI assistant. -Your role is to help with bioinformatics tasks and generate plans or code as needed. -Please adhere to the following guidelines strictly: -1. Always maintain your role as a bioinformatician. -2. You are working on an Ubuntu 24.04 system with base micromamba environment.yaml file, which is: -```yaml -name: base -channels: - - conda-forge - - bioconda - - defaults -dependencies: - - python=3.11 - - requests - - biopython - - scanpy<=1.10.3 - - scikit-learn<=1.5.2 - - polars>=1.11.0 - - pandas>=2.2.2 - - numpy<2.0.0,>=1.23 - - scipy<=1.14.1 - - pyarrow - - pip: - - genomepy>=0.16.1 - - pyensembl - - plotly - - GEOparse>=2.0.4 -``` -However no other software is installed by default. -3. You use run_bash_command tool to install new dependencies. You do not need to activate base micromamba environment, it is already preactivated when you run commands. -4. Use run_python_code tool to run python code. The tool will execute it as script that is why all variables and imports created previosly will not be available. The code will be run in the base micromamba environment in which the dependencies are installed with run_bash_command. -5. Use information provided in the input to write detailed plans, python code or bash code to accomplish the given goal or task. -6. If you download data, save it in the /input directory. Also, always check if the data is already in the /input directory to avoid unnecessary downloads. -7. If the files you downloaded are tar-ed, ziped and gziped feel free to extract them in the /input directory. -8. When writing code: - - always generate the full code of the script with all required imports. Each time you run the code assume nothing is imported or initialized. - - Use full absolute paths for all files. Use pathlib when possible. - - Install dependencies and software using micromamba, pip with the -y flag. - - Use default values for unspecified parameters. - - Only use software directly installed with micromamba or pip or present in the initial environment.yaml. - - Always give all relevant imports at the beginning of the code. Do not assume anything imported in the global scope. - - If the method that you use require data preprecessing (like NaN deletion) or normalization, do it first. - - Always inspect the data, check which columns in the dataframes are relevant and clean them from bad or missing entries if neccesary - - If your previos run failed because some field does not exist, inspect the fields and check if you confused the names - - Do not repeat steps already successfully completed in the history. - - If you download data, save it in the /input directory. Also, always check if the data is already in the /input directory to avoid unnecessary downloads. - - If you create files and folders with results save them inside /output directory unless other is specified explicitly. - - When you make plots save figures in /output directory. - - If you encounter errors related to field names in Python objects, use the dir() or similar functions to inspect the object and verify the correct field names. For example: print(dir(object_name)) - Compare the output with the field names you're trying to access. Correct any mismatches in your code. - -9. Pay attention to the number of input files and do not miss any. -10. Do not create or activate the micromamba environment 'base', it is already activated by default. -11. Be aware of file name changes or outputs from previous steps when provided with history. -12. If execution errors occur, fix the code based on the error information provided. -13. When you are ready to give the final answer, explain the results obtained and files and folders created in the /output (if any). -14. Examples of using GEOparse to download and process GEO data: -```python -import GEOparse - -gse = GEOparse.get_GEO('GSE176043', destdir='/input') -``` -System constraints: -- You are working on an Ubuntu 24.04 system. -- You have a micromamba environment named 'base'. -- No other software is installed by default. -Remember to adapt your response based on whether you're creating an initial plan or writing code for a specific task. -Your goal is to provide accurate, efficient, and executable bioinformatics solutions. - -RESPONSE FORMAT: - -For each step, provide a title that describes what you're doing in that step, along with the content. -If you are writing code, run it with the run_python_code tool instead of pasting it to the content field of the response. -If you are writing bash code, run it with the run_bash_command tool instead of pasting it to the content field of the response. -Decide if you need another step or if you're ready to give the final answer. -Respond in JSON format with 'title', 'code', 'content', and 'next_action' (either 'continue' or 'final_answer') keys. -Make sure you send only one JSON step object. Make sure you send only one JSON step object. -You response should be a valid JSON object. In the JSON use Use Triple Quotes for Multi-line Strings. -USE AS MANY REASONING STEPS AS POSSIBLE. AT LEAST 3. -BE AWARE OF YOUR LIMITATIONS AS AN LLM AND WHAT YOU CAN AND CANNOT DO. -IN YOUR REASONING, INCLUDE EXPLORATION OF ALTERNATIVE ANSWERS. -CONSIDER YOU MAY BE WRONG, AND IF YOU ARE WRONG IN YOUR REASONING, WHERE IT WOULD BE. -FULLY TEST ALL OTHER POSSIBILITIES. -YOU CAN BE WRONG. WHEN YOU SAY YOU ARE RE-EXAMINING, ACTUALLY RE-EXAMINE, AND USE ANOTHER APPROACH TO DO SO. -DO NOT JUST SAY YOU ARE RE-EXAMINING. USE AT LEAST 3 METHODS TO DERIVE THE ANSWER. USE BEST PRACTICES. - - Example of a valid JSON response: - \"{ - \"title\": \"Identifying Key Information\", - \"content\": \"To begin solving this problem, we need to carefully examine the given information and identify the crucial elements that will guide our solution process. This involves...\", - \"next_action\": \"continue\" - }\" - " -system_prompt_path: -final_prompt: "Please provide the final answer based solely on your reasoning above." -title: "title" -content: "content" -next_action: "next_action" -action_continue: "continue" -action_final: "final_answer" -thought_max_tokes: 5000 -max_steps: 25 -final_max_tokens: 2500 -tools: - - package: "coding.tools" - function: "run_bash_command" - - package: "coding.tools" - function: "run_python_code" -options: - model: "gpt-4o" - temperature: 0.0 \ No newline at end of file diff --git a/examples/just_agents/examples/coding/code_agent.yaml b/examples/just_agents/examples/coding/code_agent.yaml deleted file mode 100644 index 7bdcb3d..0000000 --- a/examples/just_agents/examples/coding/code_agent.yaml +++ /dev/null @@ -1,103 +0,0 @@ -class: "ChainOfThoughtAgent" -system_prompt: | - You are a bioinformatician AI assistant. - Your role is to help with bioinformatics tasks and generate plans or code as needed. - Please adhere to the following guidelines strictly: - 1. Always maintain your role as a bioinformatician. - 2. You are working on an Ubuntu 24.04 system with a default base micromamba environment, which is: - ```yaml - name: base - channels: - - conda-forge - - bioconda - - defaults - dependencies: - - python=3.11 - - requests - - biopython - - scanpy<=1.10.3 - - scikit-learn<=1.5.2 - - polars>=1.11.0 - - pandas>=2.2.2 - - numpy<2.0.0,>=1.23 - - scipy<=1.14.1 - - pyarrow - - pip: - - genomepy>=0.16.1 - - pyensembl - - plotly - - GEOparse>=2.0.4 - ``` - 3. When you search for genes, proteins and other biological entities by name do not take ids from your memory, first use corresponding libraries and search to resolve ids. - 4. You use run_bash_command tool to install new dependencies. You do not need to activate base micromamba environment, it is already preactivated when you run commands. - 5. Use run_python_code tool to run python code. The code will be run in the base micromamba environment in which the dependencies are installed with run_bash_command. - 6. Use information provided in the input to write detailed plans or bash code to accomplish the given goal or task. - 7. If you download data, save it in the /input directory. Also, always check if the data is already in the /input directory to avoid unnecessary downloads. - 8. When writing code: - - when you search for genes, proteins and other biological entities ALWAYS use the search function from libraries to resolve ids and accesssion numbers. Do not assume you know UniProt accession number - - Use full absolute paths for all files. Use pathlib when possible. - - Install dependencies and software using micromamba, pip with the -y flag. - - Use default values for unspecified parameters. - - Always give all relevant imports at the beginning of the code. - - Only use software directly installed with micromamba or pip. - - Always inspect the data, check which columns in the dataframes are relevant and clean them from bad or missing entries if neccesary - - If your previos run failed because some field does not exist, inspect the fields and check if you confused the names - - Do not repeat steps already completed in the history. - - If you download data, save it in the /input directory. Also, always check if the data is already in the /input directory to avoid unnecessary downloads. - - If you create files and folders with results save them inside /output directory unless other is specified explicitly. - - When you make plots save figures in /output directory. - - If you encounter errors related to field names in Python objects, use the dir() or similar functions to inspect the object and verify the correct field names. For example: print(dir(object_name)) - Compare the output with the field names you're trying to access. Correct any mismatches in your code. - - 9. Pay attention to the number of input files and do not miss any. - 10. Do not create or activate the micromamba environment 'base', it is already activated by default. - 11. Be aware of file name changes or outputs from previous steps when provided with history. - 12. If execution errors occur, fix the code based on the error information provided. - 13. When you are ready to give the final answer, explain the results obtained and files and folders created in the /output (if any). - - System constraints: - - You are working on an Ubuntu 24.04 system. - - You have a micromamba environment named 'base'. - - No other software is installed by default. - - Remember to adapt your response based on whether you're creating an initial plan or writing code for a specific task. - Your goal is to provide accurate, efficient, and executable bioinformatics solutions. - - For each step, provide a title that describes what you're doing in that step, along with the content. - Decide if you need another step or if you're ready to give the final answer. - Respond in JSON format with 'title', 'code', 'content', and 'next_action' (either 'continue' or 'final_answer') keys. - Make sure you send only one JSON step object. - USE AS MANY REASONING STEPS AS POSSIBLE. AT LEAST 3. - BE AWARE OF YOUR LIMITATIONS AS AN LLM AND WHAT YOU CAN AND CANNOT DO. - IN YOUR REASONING, INCLUDE EXPLORATION OF ALTERNATIVE ANSWERS. - CONSIDER YOU MAY BE WRONG, AND IF YOU ARE WRONG IN YOUR REASONING, WHERE IT WOULD BE. - FULLY TEST ALL OTHER POSSIBILITIES. - YOU CAN BE WRONG. WHEN YOU SAY YOU ARE RE-EXAMINING, ACTUALLY RE-EXAMINE, AND USE ANOTHER APPROACH TO DO SO. - DO NOT JUST SAY YOU ARE RE-EXAMINING. USE AT LEAST 3 METHODS TO DERIVE THE ANSWER. USE BEST PRACTICES. - - Example of a valid JSON response: - { - "title": "Identifying Key Information", - "content": "To begin solving this problem, we need to carefully examine the given information and identify the crucial elements that will guide our solution process. This involves...", - "next_action": "continue" - } -system_prompt_path: null -final_prompt: "Please provide the final answer based solely on your reasoning above." -title: "title" -content: "content" -next_action: "next_action" -action_continue: "continue" -action_final: "final_answer" -thought_max_tokes: 500 -max_steps: 25 -final_max_tokens: 1500 -tools: - - package: "just_agents_examples.coding.tools" - function: "run_bash_command" - - package: "just_agents_examples.coding.tools" - function: "run_python_code" - - package: "just_agents_examples.coding.tools" - function: "download_file" -options: - model: "gpt-4o-mini" - temperature: 0.0 \ No newline at end of file diff --git a/examples/just_agents/examples/coding/code_agent_biopython.py b/examples/just_agents/examples/coding/code_agent_biopython.py index a88e35f..a841a0b 100644 --- a/examples/just_agents/examples/coding/code_agent_biopython.py +++ b/examples/just_agents/examples/coding/code_agent_biopython.py @@ -1,8 +1,8 @@ from dotenv import load_dotenv from just_agents.simple.utils import build_agent -from examples.coding.tools import write_thoughts_and_results -from examples.coding.mounts import coding_examples_dir +from just_agents.examples.coding.tools import write_thoughts_and_results +from just_agents.examples.coding.mounts import coding_examples_dir from just_agents.simple.cot_agent import ChainOfThoughtAgent load_dotenv(override=True) diff --git a/examples/just_agents/examples/coding/code_agent_genomics.py b/examples/just_agents/examples/coding/code_agent_genomics.py deleted file mode 100644 index f088c8f..0000000 --- a/examples/just_agents/examples/coding/code_agent_genomics.py +++ /dev/null @@ -1,19 +0,0 @@ -from dotenv import load_dotenv - -from just_agents.simple.utils import build_agent -from just_agents.simple.cot_agent import ChainOfThoughtAgent -from just_agents.examples.coding.tools import write_thoughts_and_results -from just_agents.examples.coding.mounts import coding_examples_dir - -load_dotenv(override=True) - -""" -This example shows how to use code generation for genomic tasks -""" -if __name__ == "__main__": - assistant: ChainOfThoughtAgent = build_agent(coding_examples_dir / "code_agent.yaml") - result, thoughts = assistant.query("Analyze vcf file with human genome using vcflib python binding." - "Extract an overall number of SNPs, deletions, and insertions. Show SNPs distribution over chromosomes." - "On this URL you will find vcf file for this task 'https://drive.usercontent.google.com/download?id=13tPNQsVXMtQKFcTeTOZ-bi7QWa9OdPD4'." - " Save results as genomic_result.txt") - write_thoughts_and_results("genomics", thoughts, result) \ No newline at end of file diff --git a/examples/just_agents/examples/coding/code_agent_scRNA_analysis.py b/examples/just_agents/examples/coding/code_agent_scRNA_analysis.py deleted file mode 100644 index a2f412d..0000000 --- a/examples/just_agents/examples/coding/code_agent_scRNA_analysis.py +++ /dev/null @@ -1,24 +0,0 @@ -from pathlib import Path -from dotenv import load_dotenv -from just_agents.simple.utils import build_agent -from just_agents.simple.cot_agent import ChainOfThoughtAgent -from just_agents.examples.coding.tools import write_thoughts_and_results -from just_agents.examples.coding.mounts import input_dir, output_dir, coding_examples_dir - -load_dotenv(override=True) - -""" -This example shows how to use a Chain Of Thought code agent to run python code and bash commands, it uses volumes and is based on Chain Of Thought Agent class. -The task was taken from then https://github.com/JoshuaChou2018/AutoBA library - -WARNING: This example is not working stabily, we have to update the prompt to make it work stably -""" - -if __name__ == "__main__": - assistant: ChainOfThoughtAgent= build_agent(coding_examples_dir / "code_agent.yaml") - result, thoughts = assistant.query("Use squidpy for neighborhood enrichment analysis for " - "'https://github.com/antonkulaga/AutoBA/blob/dev-v1.x.x/examples/case4.1/data/slice1.h5ad', " - "'https://github.com/antonkulaga/AutoBA/blob/dev-v1.x.x/examples/case4.1/data/slice1.h5ad', " - "'https://github.com/antonkulaga/AutoBA/blob/dev-v1.x.x/examples/case4.1/data/slice1.h5ad'" - "that are spatial transcriptomics data for slices 1, 2 and 3 in AnnData format'. Save results as reslult.txt") - write_thoughts_and_results("scRNA_analysis", thoughts, result) diff --git a/examples/just_agents/examples/coding/cot_dev.py b/examples/just_agents/examples/coding/cot_dev.py index 1b7da6f..fc5e167 100644 --- a/examples/just_agents/examples/coding/cot_dev.py +++ b/examples/just_agents/examples/coding/cot_dev.py @@ -3,7 +3,7 @@ from pydantic import Field, PrivateAttr from just_agents.just_tool import JustToolsBus -from cot_memory import ActionableThought, IBaseThoughtMemory, BaseThoughtMemory +from just_agents.examples.coding.cot_memory import ActionableThought, IBaseThoughtMemory, BaseThoughtMemory from just_agents.types import SupportedMessages from just_agents.patterns.interfaces.IThinkingAgent import IThinkingAgent diff --git a/examples/notebooks/01_just_agents_colab.ipynb b/examples/notebooks/01_just_agents_colab.ipynb index 51eb7de..475b28b 100644 --- a/examples/notebooks/01_just_agents_colab.ipynb +++ b/examples/notebooks/01_just_agents_colab.ipynb @@ -62,99 +62,18 @@ }, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Collecting just-agents\n", - " Downloading just_agents-0.2.5-py2.py3-none-any.whl.metadata (7.1 kB)\n", - "Collecting litellm>=1.51.0 (from just-agents)\n", - " Downloading litellm-1.52.6-py3-none-any.whl.metadata (32 kB)\n", - "Collecting numpydoc (from just-agents)\n", - " Downloading numpydoc-1.8.0-py3-none-any.whl.metadata (4.3 kB)\n", - "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from just-agents) (2.32.3)\n", - "Requirement already satisfied: typer>=0.12.5 in /usr/local/lib/python3.10/dist-packages (from just-agents) (0.13.0)\n", - "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from litellm>=1.51.0->just-agents) (3.10.10)\n", - "Requirement already satisfied: click in /usr/local/lib/python3.10/dist-packages (from litellm>=1.51.0->just-agents) (8.1.7)\n", - "Requirement already satisfied: importlib-metadata>=6.8.0 in /usr/local/lib/python3.10/dist-packages (from litellm>=1.51.0->just-agents) (8.5.0)\n", - "Requirement already satisfied: jinja2<4.0.0,>=3.1.2 in /usr/local/lib/python3.10/dist-packages (from litellm>=1.51.0->just-agents) (3.1.4)\n", - "Requirement already satisfied: jsonschema<5.0.0,>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from litellm>=1.51.0->just-agents) (4.23.0)\n", - "Requirement already satisfied: openai>=1.54.0 in /usr/local/lib/python3.10/dist-packages (from litellm>=1.51.0->just-agents) (1.54.3)\n", - "Requirement already satisfied: pydantic<3.0.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from litellm>=1.51.0->just-agents) (2.9.2)\n", - "Collecting python-dotenv>=0.2.0 (from litellm>=1.51.0->just-agents)\n", - " Downloading python_dotenv-1.0.1-py3-none-any.whl.metadata (23 kB)\n", - "Collecting tiktoken>=0.7.0 (from litellm>=1.51.0->just-agents)\n", - " Downloading tiktoken-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)\n", - "Requirement already satisfied: tokenizers in /usr/local/lib/python3.10/dist-packages (from litellm>=1.51.0->just-agents) (0.20.3)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->just-agents) (3.4.0)\n", - "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->just-agents) (3.10)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->just-agents) (2.2.3)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->just-agents) (2024.8.30)\n", - "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from typer>=0.12.5->just-agents) (4.12.2)\n", - "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.12.5->just-agents) (1.5.4)\n", - "Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.12.5->just-agents) (13.9.4)\n", - "Requirement already satisfied: sphinx>=6 in /usr/local/lib/python3.10/dist-packages (from numpydoc->just-agents) (8.1.3)\n", - "Requirement already satisfied: tabulate>=0.8.10 in /usr/local/lib/python3.10/dist-packages (from numpydoc->just-agents) (0.9.0)\n", - "Requirement already satisfied: tomli>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from numpydoc->just-agents) (2.0.2)\n", - "Requirement already satisfied: zipp>=3.20 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata>=6.8.0->litellm>=1.51.0->just-agents) (3.20.2)\n", - "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2<4.0.0,>=3.1.2->litellm>=1.51.0->just-agents) (3.0.2)\n", - "Requirement already satisfied: attrs>=22.2.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema<5.0.0,>=4.22.0->litellm>=1.51.0->just-agents) (24.2.0)\n", - "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.10/dist-packages (from jsonschema<5.0.0,>=4.22.0->litellm>=1.51.0->just-agents) (2024.10.1)\n", - "Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.10/dist-packages (from jsonschema<5.0.0,>=4.22.0->litellm>=1.51.0->just-agents) (0.35.1)\n", - "Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from jsonschema<5.0.0,>=4.22.0->litellm>=1.51.0->just-agents) (0.21.0)\n", - "Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (3.7.1)\n", - "Requirement already satisfied: distro<2,>=1.7.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (1.9.0)\n", - "Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (0.27.2)\n", - "Requirement already satisfied: jiter<1,>=0.4.5 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (0.7.0)\n", - "Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (1.3.1)\n", - "Requirement already satisfied: tqdm>4 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (4.66.6)\n", - "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.0.0->litellm>=1.51.0->just-agents) (0.7.0)\n", - "Requirement already satisfied: pydantic-core==2.23.4 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.0.0->litellm>=1.51.0->just-agents) (2.23.4)\n", - "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer>=0.12.5->just-agents) (3.0.0)\n", - "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer>=0.12.5->just-agents) (2.18.0)\n", - "Requirement already satisfied: sphinxcontrib-applehelp>=1.0.7 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc->just-agents) (2.0.0)\n", - "Requirement already satisfied: sphinxcontrib-devhelp>=1.0.6 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc->just-agents) (2.0.0)\n", - "Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.6 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc->just-agents) (2.1.0)\n", - "Requirement already satisfied: sphinxcontrib-jsmath>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc->just-agents) (1.0.1)\n", - "Requirement already satisfied: sphinxcontrib-qthelp>=1.0.6 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc->just-agents) (2.0.0)\n", - "Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc->just-agents) (2.0.0)\n", - "Requirement already satisfied: docutils<0.22,>=0.20 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc->just-agents) (0.21.2)\n", - "Requirement already satisfied: snowballstemmer>=2.2 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc->just-agents) (2.2.0)\n", - "Requirement already satisfied: babel>=2.13 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc->just-agents) (2.16.0)\n", - "Requirement already satisfied: alabaster>=0.7.14 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc->just-agents) (1.0.0)\n", - "Requirement already satisfied: imagesize>=1.3 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc->just-agents) (1.4.1)\n", - "Requirement already satisfied: packaging>=23.0 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc->just-agents) (24.2)\n", - "Requirement already satisfied: regex>=2022.1.18 in /usr/local/lib/python3.10/dist-packages (from tiktoken>=0.7.0->litellm>=1.51.0->just-agents) (2024.9.11)\n", - "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->litellm>=1.51.0->just-agents) (2.4.3)\n", - "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->litellm>=1.51.0->just-agents) (1.3.1)\n", - "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->litellm>=1.51.0->just-agents) (1.5.0)\n", - "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->litellm>=1.51.0->just-agents) (6.1.0)\n", - "Requirement already satisfied: yarl<2.0,>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->litellm>=1.51.0->just-agents) (1.17.1)\n", - "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->litellm>=1.51.0->just-agents) (4.0.3)\n", - "Requirement already satisfied: huggingface-hub<1.0,>=0.16.4 in /usr/local/lib/python3.10/dist-packages (from tokenizers->litellm>=1.51.0->just-agents) (0.26.2)\n", - "Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->openai>=1.54.0->litellm>=1.51.0->just-agents) (1.2.2)\n", - "Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.10/dist-packages (from httpx<1,>=0.23.0->openai>=1.54.0->litellm>=1.51.0->just-agents) (1.0.6)\n", - "Requirement already satisfied: h11<0.15,>=0.13 in /usr/local/lib/python3.10/dist-packages (from httpcore==1.*->httpx<1,>=0.23.0->openai>=1.54.0->litellm>=1.51.0->just-agents) (0.14.0)\n", - "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers->litellm>=1.51.0->just-agents) (3.16.1)\n", - "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers->litellm>=1.51.0->just-agents) (2024.10.0)\n", - "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers->litellm>=1.51.0->just-agents) (6.0.2)\n", - "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.12.5->just-agents) (0.1.2)\n", - "Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from yarl<2.0,>=1.12.0->aiohttp->litellm>=1.51.0->just-agents) (0.2.0)\n", - "Downloading just_agents-0.2.5-py2.py3-none-any.whl (50 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m50.0/50.0 kB\u001b[0m \u001b[31m913.7 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hDownloading litellm-1.52.6-py3-none-any.whl (6.4 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.4/6.4 MB\u001b[0m \u001b[31m19.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hDownloading numpydoc-1.8.0-py3-none-any.whl (64 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m64.0/64.0 kB\u001b[0m \u001b[31m2.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hDownloading python_dotenv-1.0.1-py3-none-any.whl (19 kB)\n", - "Downloading tiktoken-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.2/1.2 MB\u001b[0m \u001b[31m8.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hInstalling collected packages: python-dotenv, tiktoken, numpydoc, litellm, just-agents\n", - "Successfully installed just-agents-0.2.5 litellm-1.52.6 numpydoc-1.8.0 python-dotenv-1.0.1 tiktoken-0.8.0\n" + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mRunning cells with 'just-agents-jj5lCgqj-py3.11 (Python 3.11.10)' requires the ipykernel package.\n", + "\u001b[1;31mRun the following command to install 'ipykernel' into the Python environment. \n", + "\u001b[1;31mCommand: '/home/antonkulaga/.cache/pypoetry/virtualenvs/just-agents-jj5lCgqj-py3.11/bin/python -m pip install ipykernel -U --force-reinstall'" ] } ], "source": [ - "!pip install just-agents-core==0.4.5" + "!pip install just-agents-core==0.4.6" ] }, { @@ -1081,7 +1000,8 @@ "name": "python3" }, "language_info": { - "name": "python" + "name": "python", + "version": "3.11.10" } }, "nbformat": 4, diff --git a/examples/notebooks/02_sqlite_example.ipynb b/examples/notebooks/02_sqlite_example.ipynb index 02ef6db..57afe6a 100644 --- a/examples/notebooks/02_sqlite_example.ipynb +++ b/examples/notebooks/02_sqlite_example.ipynb @@ -262,7 +262,7 @@ "Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (3.7.1)\n", "Requirement already satisfied: distro<2,>=1.7.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (1.9.0)\n", "Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (0.27.2)\n", - "Requirement already satisfied: jiter<1,>=0.4.5 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (0.7.0)\n", + "Requirement already satisfied: jiter<1,>=0.4.6 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (0.7.0)\n", "Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (1.3.1)\n", "Requirement already satisfied: tqdm>4 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (4.66.6)\n", "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.0.0->litellm>=1.51.0->just-agents) (0.7.0)\n", @@ -312,8 +312,8 @@ } ], "source": [ - "!pip install just-agents-core==0.4.5\n", - "!pip install just-agents-examples==0.4.5" + "!pip install just-agents-core==0.4.6\n", + "!pip install just-agents-examples==0.4.6" ] }, { diff --git a/examples/notebooks/03_coding_agent.ipynb b/examples/notebooks/03_coding_agent.ipynb index 89fae88..6913726 100644 --- a/examples/notebooks/03_coding_agent.ipynb +++ b/examples/notebooks/03_coding_agent.ipynb @@ -106,7 +106,7 @@ "Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (3.7.1)\n", "Requirement already satisfied: distro<2,>=1.7.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (1.9.0)\n", "Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (0.27.2)\n", - "Requirement already satisfied: jiter<1,>=0.4.5 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (0.7.1)\n", + "Requirement already satisfied: jiter<1,>=0.4.6 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (0.7.1)\n", "Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (1.3.1)\n", "Requirement already satisfied: tqdm>4 in /usr/local/lib/python3.10/dist-packages (from openai>=1.54.0->litellm>=1.51.0->just-agents) (4.66.6)\n", "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.0.0->litellm>=1.51.0->just-agents) (0.7.0)\n", @@ -156,8 +156,8 @@ } ], "source": [ - "!pip install just-agents-core==0.4.5\n", - "!pip install just-agents-examples==0.4.5" + "!pip install just-agents-core==0.4.6\n", + "!pip install just-agents-examples==0.4.6" ] }, { diff --git a/examples/pyproject.toml b/examples/pyproject.toml index 21e780e..370f8b5 100644 --- a/examples/pyproject.toml +++ b/examples/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "just-agents-examples" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - Examples code" authors = ["Alex Karmazin "] maintainers = ["Anton Kulaga "] @@ -12,15 +12,15 @@ license = "MIT" [tool.poetry.dependencies] python = ">=3.10,<4.0" -just-agents-core = ">=0.4.5" -just-agents-tools = ">=0.4.5" -just-agents-coding = ">=0.4.5" -just-agents-web = ">=0.4.5" -just-agents-router = ">=0.4.5" +just-agents-core = ">=0.4.6" +just-agents-tools = ">=0.4.6" +just-agents-coding = ">=0.4.6" +just-agents-web = ">=0.4.6" +just-agents-router = ">=0.4.6" +docker = ">=7.1.0" [tool.poetry.group.dev.dependencies] -pytest = "^7.4.4" -python-dotenv = "*" +pytest = ">=8.3.4" [build-system] requires = ["poetry-core"] diff --git a/poetry.lock b/poetry.lock index 3ecd5e9..39dd86a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -413,6 +413,28 @@ files = [ {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, ] +[[package]] +name = "docker" +version = "7.1.0" +description = "A Python library for the Docker Engine API." +optional = false +python-versions = ">=3.8" +files = [ + {file = "docker-7.1.0-py3-none-any.whl", hash = "sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0"}, + {file = "docker-7.1.0.tar.gz", hash = "sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c"}, +] + +[package.dependencies] +pywin32 = {version = ">=304", markers = "sys_platform == \"win32\""} +requests = ">=2.26.0" +urllib3 = ">=1.26.0" + +[package.extras] +dev = ["coverage (==7.2.7)", "pytest (==7.4.2)", "pytest-cov (==4.1.0)", "pytest-timeout (==2.1.0)", "ruff (==0.1.8)"] +docs = ["myst-parser (==0.18.0)", "sphinx (==5.1.1)"] +ssh = ["paramiko (>=2.4.3)"] +websockets = ["websocket-client (>=1.3.0)"] + [[package]] name = "docutils" version = "0.21.2" @@ -970,7 +992,7 @@ referencing = ">=0.31.0" [[package]] name = "just-agents-coding" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - Coding Components" optional = false python-versions = ">=3.10,<4.0" @@ -978,7 +1000,7 @@ files = [] develop = true [package.dependencies] -just-agents-core = ">=0.4.5" +just-agents-core = ">=0.4.6" llm-sandbox = ">=0.1.8" [package.source] @@ -987,7 +1009,7 @@ url = "coding" [[package]] name = "just-agents-core" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - Base Package" optional = false python-versions = ">=3.10,<4.0" @@ -996,9 +1018,10 @@ develop = true [package.dependencies] Deprecated = ">=1.2.15" -litellm = ">=1.52.14" +litellm = ">=1.57.2" numpydoc = "*" pydantic = ">=2.0.0,<3.0.0" +python-dotenv = ">=1.0.1" requests = "*" [package.source] @@ -1007,7 +1030,7 @@ url = "core" [[package]] name = "just-agents-examples" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - Examples code" optional = false python-versions = ">=3.10,<4.0" @@ -1015,11 +1038,12 @@ files = [] develop = true [package.dependencies] -just-agents-coding = ">=0.4.5" -just-agents-core = ">=0.4.5" -just-agents-router = ">=0.4.5" -just-agents-tools = ">=0.4.5" -just-agents-web = ">=0.4.5" +docker = ">=7.1.0" +just-agents-coding = ">=0.4.6" +just-agents-core = ">=0.4.6" +just-agents-router = ">=0.4.6" +just-agents-tools = ">=0.4.6" +just-agents-web = ">=0.4.6" [package.source] type = "directory" @@ -1027,7 +1051,7 @@ url = "examples" [[package]] name = "just-agents-router" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - Router Components" optional = false python-versions = ">=3.10,<4.0" @@ -1035,7 +1059,7 @@ files = [] develop = true [package.dependencies] -just-agents-core = ">=0.4.5" +just-agents-core = ">=0.4.6" [package.source] type = "directory" @@ -1043,7 +1067,7 @@ url = "router" [[package]] name = "just-agents-tools" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - Tools Components" optional = false python-versions = ">=3.10,<4.0" @@ -1051,7 +1075,7 @@ files = [] develop = true [package.dependencies] -just-agents-core = ">=0.4.5" +just-agents-core = ">=0.4.6" semanticscholar = ">=0.8.4" typer = ">=0.13.0" @@ -1061,7 +1085,7 @@ url = "tools" [[package]] name = "just-agents-web" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - Web. It allows runing openai API for the agent in the browser." optional = false python-versions = ">=3.10,<4.0" @@ -1070,7 +1094,7 @@ develop = true [package.dependencies] fastapi = ">=0.115.6" -just-agents-core = ">=0.4.5" +just-agents-core = ">=0.4.6" pycomfort = ">=0.0.17" uvicorn = ">=0.34.0" @@ -1080,13 +1104,13 @@ url = "web" [[package]] name = "litellm" -version = "1.57.1" +version = "1.57.2" description = "Library to easily interface with LLM API providers" optional = false python-versions = "!=2.7.*,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,!=3.7.*,>=3.8" files = [ - {file = "litellm-1.57.1-py3-none-any.whl", hash = "sha256:f9e93689f2d96df3bcebe723d44b6e2e71b9b047ec7ebd1054b6c9bc96cd9515"}, - {file = "litellm-1.57.1.tar.gz", hash = "sha256:2ce6ce1707c92fb278f828a8ea058fa12b3eeb8081dd8c10776569995e03bb6f"}, + {file = "litellm-1.57.2-py3-none-any.whl", hash = "sha256:b572c0d3d3c33ff3a4d18928ac6f051d10ac159814017a817d88ec7af9a8600c"}, + {file = "litellm-1.57.2.tar.gz", hash = "sha256:0a07c4e288f4bd9033335d5606d7da497f1193d51cf262b96812f40b8842a842"}, ] [package.dependencies] @@ -1376,13 +1400,13 @@ test = ["matplotlib", "pytest", "pytest-cov"] [[package]] name = "openai" -version = "1.59.4" +version = "1.59.5" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" files = [ - {file = "openai-1.59.4-py3-none-any.whl", hash = "sha256:82113498699998e98104f87c19a890e82df9b01251a0395484360575d3a1d98a"}, - {file = "openai-1.59.4.tar.gz", hash = "sha256:b946dc5a2308dc1e03efbda80bf1cd64b6053b536851ad519f57ee44401663d2"}, + {file = "openai-1.59.5-py3-none-any.whl", hash = "sha256:e646b44856b0dda9345d3c43639e056334d792d1690e99690313c0ef7ca4d8cc"}, + {file = "openai-1.59.5.tar.gz", hash = "sha256:9886e77c02dad9dc6a7b67a11ab372a56842a9b5d376aa476672175ab10e83a0"}, ] [package.dependencies] @@ -1827,13 +1851,13 @@ files = [ [[package]] name = "pytest" -version = "7.4.4" +version = "8.3.4" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, - {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, + {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"}, + {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"}, ] [package.dependencies] @@ -1841,11 +1865,11 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "python-dotenv" @@ -1861,6 +1885,33 @@ files = [ [package.extras] cli = ["click (>=5.0)"] +[[package]] +name = "pywin32" +version = "308" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, +] + [[package]] name = "pyyaml" version = "6.0.2" @@ -2920,4 +2971,4 @@ testing = ["coverage[toml]", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<4.0" -content-hash = "9a36c178676d7ac4e458ed10e31505e21e78857dfe03a6684527f9a3adee0aa6" +content-hash = "141602cecb7adeb9c3a43df561bfaeac17cec806087a5ca82ecd927e840a3d46" diff --git a/pyproject.toml b/pyproject.toml index 992e1f3..b8f91a3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "just-agents" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - A lightweight, straightforward library for LLM agents that focuses on simplicity over unnecessary abstractions." authors = [ "Alex Karmazin ", @@ -26,15 +26,15 @@ just-agents-router = { path = "router", develop = true } just-agents-examples = { path = "examples", develop = true } [tool.poetry.group.publish.dependencies] -just-agents-core = "0.4.5" -just-agents-tools = "0.4.5" -just-agents-coding = "0.4.5" -just-agents-web = "0.4.5" -just-agents-router = "0.4.5" -just-agents-examples = "0.4.5" +just-agents-core = "0.4.6" +just-agents-tools = "0.4.6" +just-agents-coding = "0.4.6" +just-agents-web = "0.4.6" +just-agents-router = "0.4.6" +just-agents-examples = "0.4.6" [tool.poetry.group.dev.dependencies] -pytest = "^7.4.4" +pytest = ">=8.3.4" python-dotenv = "*" [build-system] diff --git a/router/pyproject.toml b/router/pyproject.toml index 5b964bd..a4cc904 100644 --- a/router/pyproject.toml +++ b/router/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "just-agents-router" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - Router Components" authors = [ "Newton Winter ", @@ -18,11 +18,10 @@ license = "MIT" [tool.poetry.dependencies] python = ">=3.10,<4.0" -just-agents-core = ">=0.4.5" +just-agents-core = ">=0.4.6" [tool.poetry.group.dev.dependencies] -pytest = "^7.4.4" -python-dotenv = "*" +pytest = ">=8.3.4" [build-system] requires = ["poetry-core"] diff --git a/tools/just_agents/tools/db.py b/tools/just_agents/tools/db.py new file mode 100644 index 0000000..e69de29 diff --git a/tools/pyproject.toml b/tools/pyproject.toml index 55fa079..fcc6d1d 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "just-agents-tools" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - Tools Components" authors = ["Alex Karmazin "] maintainers = ["Anton Kulaga "] @@ -12,13 +12,10 @@ license = "MIT" [tool.poetry.dependencies] python = ">=3.10,<4.0" -just-agents-core = ">=0.4.5" +just-agents-core = ">=0.4.6" semanticscholar = ">=0.8.4" typer = ">=0.13.0" -[tool.poetry.group.dev.dependencies] -pytest = "^7.4.4" -python-dotenv = "*" [build-system] requires = ["poetry-core"] diff --git a/web/poetry.lock b/web/poetry.lock index 831b23e..aff9e73 100644 --- a/web/poetry.lock +++ b/web/poetry.lock @@ -959,13 +959,13 @@ referencing = ">=0.31.0" [[package]] name = "just-agents-core" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - Base Package" optional = false python-versions = "<4.0,>=3.10" files = [ - {file = "just_agents_core-0.4.5-py3-none-any.whl", hash = "sha256:dc3932e2793b83322df4e04100f70a83c2aada9298db236b2df8890f7233a5aa"}, - {file = "just_agents_core-0.4.5.tar.gz", hash = "sha256:bd0b0b000425f4c0e5ee15a6ee82a2ef8b5d25c3d254c6023ac03460d3f8f243"}, + {file = "just_agents_core-0.4.6-py3-none-any.whl", hash = "sha256:dc3932e2793b83322df4e04100f70a83c2aada9298db236b2df8890f7233a5aa"}, + {file = "just_agents_core-0.4.6.tar.gz", hash = "sha256:bd0b0b000425f4c0e5ee15a6ee82a2ef8b5d25c3d254c6023ac03460d3f8f243"}, ] [package.dependencies] diff --git a/web/pyproject.toml b/web/pyproject.toml index af90358..1a01927 100644 --- a/web/pyproject.toml +++ b/web/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "just-agents-web" -version = "0.4.5" +version = "0.4.6" description = "Just Agents - Web. It allows runing openai API for the agent in the browser." authors = [ @@ -28,12 +28,15 @@ classifiers = [ "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", ] + [tool.poetry.dependencies] python = ">=3.10,<4.0" -just-agents-core = ">=0.4.5" +just-agents-core = ">=0.4.6" pycomfort = ">=0.0.17" fastapi = ">=0.115.6" uvicorn = ">=0.34.0" + [tool.poetry.group.dev.dependencies] + [tool.poetry.scripts] run-agent = "just_agents.web.run:app" \ No newline at end of file