feat: Implement Trillium notes executor for searching and creating notes via ETAPI
- 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.
This commit is contained in:
@@ -7,6 +7,8 @@ volumes:
|
||||
driver: local
|
||||
neo4j_data:
|
||||
driver: local
|
||||
code_executions:
|
||||
driver: local
|
||||
|
||||
services:
|
||||
|
||||
@@ -125,11 +127,37 @@ services:
|
||||
- ./.env
|
||||
volumes:
|
||||
- ./cortex:/app
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
ports:
|
||||
- "7081:7081"
|
||||
networks:
|
||||
- lyra_net
|
||||
|
||||
# ============================================================
|
||||
# Code Sandbox (for tool execution)
|
||||
# ============================================================
|
||||
code-sandbox:
|
||||
build:
|
||||
context: ./sandbox
|
||||
container_name: lyra-code-sandbox
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
cap_drop:
|
||||
- ALL
|
||||
cap_add:
|
||||
- CHOWN
|
||||
- SETUID
|
||||
- SETGID
|
||||
network_mode: "none"
|
||||
volumes:
|
||||
- code_executions:/executions
|
||||
mem_limit: 512m
|
||||
cpus: 1.0
|
||||
pids_limit: 100
|
||||
user: sandbox
|
||||
command: tail -f /dev/null
|
||||
|
||||
# ============================================================
|
||||
# Intake
|
||||
# ============================================================
|
||||
|
||||
Reference in New Issue
Block a user