- Added `trillium.py` for searching and creating notes with Trillium's ETAPI. - Implemented `search_notes` and `create_note` functions with appropriate error handling and validation. feat: Add web search functionality using DuckDuckGo - Introduced `web_search.py` for performing web searches without API keys. - Implemented `search_web` function with result handling and validation. feat: Create provider-agnostic function caller for iterative tool calling - Developed `function_caller.py` to manage LLM interactions with tools. - Implemented iterative calling logic with error handling and tool execution. feat: Establish a tool registry for managing available tools - Created `registry.py` to define and manage tool availability and execution. - Integrated feature flags for enabling/disabling tools based on environment variables. feat: Implement event streaming for tool calling processes - Added `stream_events.py` to manage Server-Sent Events (SSE) for tool calling. - Enabled real-time updates during tool execution for enhanced user experience. test: Add tests for tool calling system components - Created `test_tools.py` to validate functionality of code execution, web search, and tool registry. - Implemented asynchronous tests to ensure proper execution and result handling. chore: Add Dockerfile for sandbox environment setup - Created `Dockerfile` to set up a Python environment with necessary dependencies for code execution. chore: Add debug regex script for testing XML parsing - Introduced `debug_regex.py` to validate regex patterns against XML tool calls. chore: Add HTML template for displaying thinking stream events - Created `test_thinking_stream.html` for visualizing tool calling events in a user-friendly format. test: Add tests for OllamaAdapter XML parsing - Developed `test_ollama_parser.py` to validate XML parsing with various test cases, including malformed XML.
31 lines
627 B
Docker
31 lines
627 B
Docker
FROM python:3.11-slim
|
|
|
|
# Install runtime dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
bash \
|
|
coreutils \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install common Python packages for data analysis and computation
|
|
RUN pip install --no-cache-dir \
|
|
numpy \
|
|
pandas \
|
|
requests \
|
|
matplotlib \
|
|
scipy
|
|
|
|
# Create non-root user for security
|
|
RUN useradd -m -u 1000 sandbox
|
|
|
|
# Create execution directory
|
|
RUN mkdir /executions && chown sandbox:sandbox /executions
|
|
|
|
# Switch to non-root user
|
|
USER sandbox
|
|
|
|
# Set working directory
|
|
WORKDIR /executions
|
|
|
|
# Keep container running
|
|
CMD ["tail", "-f", "/dev/null"]
|