From 65d27fb5ebef21c13a4d7ce0573af4c73eacd681 Mon Sep 17 00:00:00 2001 From: imotai Date: Tue, 12 Sep 2023 12:10:35 +0800 Subject: [PATCH] feat: add build package --- .github/workflows/release_libraries.yml | 41 ++++++++++++++++++++++++ agent/setup.py | 8 ++--- agent/src/octopus_agent/gpt_tools.py | 11 ++----- docker/Dockerfile | 4 +++ docker/Dockerfile_for_agent | 5 +++ docker/Dockerfile_for_kernel | 5 +-- docker/compose.yaml | 15 +++++++++ docker/requirements.txt | 16 --------- docker/start_agent.sh | 2 +- docker/start_kernel.sh | 3 +- images/octopus_logo.png | Bin 0 -> 18985 bytes kernel/setup.py | 2 +- kernel/tests/kernel_sdk_tests.py | 4 ++- proto/setup.py | 2 +- start_sandbox.sh | 4 +-- 15 files changed, 79 insertions(+), 43 deletions(-) create mode 100644 .github/workflows/release_libraries.yml create mode 100644 docker/Dockerfile create mode 100644 docker/Dockerfile_for_agent create mode 100644 docker/compose.yaml delete mode 100644 docker/requirements.txt create mode 100644 images/octopus_logo.png diff --git a/.github/workflows/release_libraries.yml b/.github/workflows/release_libraries.yml new file mode 100644 index 0000000..3098e56 --- /dev/null +++ b/.github/workflows/release_libraries.yml @@ -0,0 +1,41 @@ +# .github/workflows/ci-cd.yml +on: workflow_dispatch +jobs: + pypi-publish: + name: Upload release to PyPI + runs-on: self-hosted + #runs-on: ubuntu-latest + permissions: + id-token: write # IMPORTANT: this permission is mandatory for trusted publishing + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: recursive + - name: Install dependencies + run: pip install -r requirements.txt + + - name: build packages + run: | + TAG=${GITHUB_REF/refs\/tags\//} + VERSION=${TAG#*v} + bash build_package.sh ${VERSION} + + - name: Publish Proto + uses: pypa/gh-action-pypi-publish@release/v1 + with: + packages-dir: proto/dist + + - name: Publish Kernel + uses: pypa/gh-action-pypi-publish@release/v1 + with: + packages-dir: kernel/dist + + - name: Publish Agent + uses: pypa/gh-action-pypi-publish@release/v1 + with: + packages-dir: agent/dist + - name: Publish Chat + uses: pypa/gh-action-pypi-publish@release/v1 + with: + packages-dir: chat/dist diff --git a/agent/setup.py b/agent/setup.py index a7403a7..1cc417f 100644 --- a/agent/setup.py +++ b/agent/setup.py @@ -19,7 +19,7 @@ setup( name="octopus_agent", - version="0.1.2", + version="0.1.1", description="Open source code interpreter agent for LLM", author="imotai", author_email="wangtaize@dbpunk.com", @@ -33,14 +33,12 @@ install_requires=[ "octopus_proto", "octopus_kernel", - "langchain>=0.0.227", + "langchain>=0.0.286", "grpcio-tools>=1.57.0", "grpc-google-iam-v1>=0.12.6", "aiofiles", - "pydantic", "python-dotenv", - "openai", - "aiosqlite", + "openai" ], entry_points={ "console_scripts": [ diff --git a/agent/src/octopus_agent/gpt_tools.py b/agent/src/octopus_agent/gpt_tools.py index ffae6b3..e6e5a06 100644 --- a/agent/src/octopus_agent/gpt_tools.py +++ b/agent/src/octopus_agent/gpt_tools.py @@ -18,13 +18,11 @@ from langchain.tools import StructuredTool from .tools import OctopusAPIMarkdownOutput from typing import Any, Dict, List, Optional, Sequence, Union, Type -from pydantic import BaseModel, Field +from langchain.pydantic_v1 import BaseModel, Field from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) - - class AskQuestionInput(BaseModel): question: str = Field(description="the question") @@ -58,12 +56,11 @@ class ExecutePythonCodeInput(BaseModel): description="the saved filename list", default=[] ) - class ExecutePythonCodeTool(StructuredTool): name = "execute_python_code" description = """Execute arbitrary Python code Returns a Markdown format string including return code, result, stdout, stderr, error""" args_schema: Type[BaseModel] = ExecutePythonCodeInput - octopus_api: OctopusAPIMarkdownOutput = None + octopus_api: Optional[OctopusAPIMarkdownOutput] = None def _run( self, @@ -72,8 +69,6 @@ def _run( saved_filenames: Optional[List[str]] = None, run_manager: Optional[CallbackManagerForToolRun] = None, ) -> str: - if not self.octopus_api: - self.octopus_api = OctopusAPIMarkdownOutput() code = code result = self.octopus_api.run(code) return result @@ -85,6 +80,4 @@ async def _arun( saved_filenames: Optional[List[str]] = None, run_manager: Optional[AsyncCallbackManagerForToolRun] = None, ) -> str: - if not self.octopus_api: - self.octopus_api = OctopusAPIMarkdownOutput() return await self.octopus_api.arun(code) diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..92b4758 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu +RUN apt update +RUN apt install -y python3 python3-pip +RUN pip install -U octopus_agent octopus_kernel diff --git a/docker/Dockerfile_for_agent b/docker/Dockerfile_for_agent new file mode 100644 index 0000000..b127d25 --- /dev/null +++ b/docker/Dockerfile_for_agent @@ -0,0 +1,5 @@ +FROM octopus_base +WORKDIR /agent +VOLUME /agent +ADD start_agent.sh /agent/ +CMD ["bash", "/agent/start_agent.sh"] diff --git a/docker/Dockerfile_for_kernel b/docker/Dockerfile_for_kernel index 686845d..3990aee 100644 --- a/docker/Dockerfile_for_kernel +++ b/docker/Dockerfile_for_kernel @@ -1,7 +1,4 @@ -FROM python:3.11 -ADD requirements_kernel.txt /tmp/requirements.txt -RUN pip install -r /tmp/requirements.txt -RUN pip install octopus_proto octopus_kernel +FROM octopus_base WORKDIR /kernel VOLUME /kernel ADD start_kernel.sh /kernel/ diff --git a/docker/compose.yaml b/docker/compose.yaml new file mode 100644 index 0000000..0cee038 --- /dev/null +++ b/docker/compose.yaml @@ -0,0 +1,15 @@ +services: + kernel: + env_file: + - kernel.env + image: octopus_kernel:latest + ports: + - '9527:9527' + agent: + image: octopus_agent:latest + env_file: + - agent.env + ports: + - '9528:9528' + depends_on: + - kernel diff --git a/docker/requirements.txt b/docker/requirements.txt deleted file mode 100644 index 9721326..0000000 --- a/docker/requirements.txt +++ /dev/null @@ -1,16 +0,0 @@ -ipykernel==6.25.1 -jupyter_client==8.3.0 -numpy==1.24.2 -opencv_python==4.8.0.76 -python-dotenv==1.0.0 -setuptools==65.5.1 -grpcio-tools==1.57.0 -pytest-asyncio==0.21.0 -grpc-google-iam-v1==0.12.6 -langchain==0.0.275 -yfinance==0.2.28 -discord.py==2.3.2 -imageio==2.31.3 -Pillow==10.0.0 -matplotlib==3.7.2 -wikipedia==1.4.0 diff --git a/docker/start_agent.sh b/docker/start_agent.sh index 4ce8a71..c3da949 100755 --- a/docker/start_agent.sh +++ b/docker/start_agent.sh @@ -3,7 +3,7 @@ # start_kernel.sh echo "rpc_port=${rpc_port}" >.env -echo "rpc_host=127.0.0.1" >>.env +echo "rpc_host=0.0.0.0" >>.env echo "admin_key=${admin_key}" >>.env echo "llm_key=${llm_key}" >> .env echo "max_file_size=20480000" >> .env diff --git a/docker/start_kernel.sh b/docker/start_kernel.sh index 8235bf6..3674110 100755 --- a/docker/start_kernel.sh +++ b/docker/start_kernel.sh @@ -5,7 +5,6 @@ echo "config_root_path=/kernel" >.env echo "workspace=${workspace}" >>.env echo "rpc_port=${rpc_port}" >>.env -echo "rpc_host=127.0.0.1" >>.env +echo "rpc_host=0.0.0.0" >>.env echo "rpc_key=${rpc_key}" >>.env - octopus_kernel_rpc_server diff --git a/images/octopus_logo.png b/images/octopus_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6de34f158c8ba66946e18d57ce6057a614d05fe0 GIT binary patch literal 18985 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 O0000 .env @@ -24,7 +23,6 @@ echo "start kernel with endpoint 127.0.0.1:9527" octopus_kernel_rpc_server > kernel_rpc.log 2>&1 & sleep 2 cd ${WORKDIR}/sandbox/agent -#AGENT_RPC_KEY=`tr -dc A-Za-z0-9 > .env @@ -36,4 +34,4 @@ echo "verbose=True" >> .env octopus_agent_rpc_server > agent_rpc.log 2>&1 & sleep 2 echo "add a kernel" -octopus_agent_setup --kernel_endpoint=127.0.0.1:9527 --kernel_api_key=${KERNEL_RPC_KEY} --kernel_workspace=/tmp/ws1 --agent_endpoint=127.0.0.1:9528 --admin_key=${AGENT_RPC_KEY} +octopus_agent_setup --kernel_endpoint=127.0.0.1:9527 --kernel_api_key=${KERNEL_RPC_KEY} --agent_endpoint=127.0.0.1:9528 --admin_key=${AGENT_RPC_KEY}