19
Dockerfile
19
Dockerfile
@@ -40,12 +40,22 @@ RUN poetry lock --no-update && \
|
||||
# Runtime stage
|
||||
FROM ankane/pgvector:v0.5.1 AS runtime
|
||||
|
||||
# Install Python packages
|
||||
# Install Python packages and OpenTelemetry Collector
|
||||
RUN apt-get update && apt-get install -y \
|
||||
python3 \
|
||||
python3-venv \
|
||||
curl \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& mkdir -p /app
|
||||
&& mkdir -p /app \
|
||||
# Install OpenTelemetry Collector
|
||||
&& curl -L https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.96.0/otelcol-contrib_0.96.0_linux_amd64.tar.gz -o /tmp/otel-collector.tar.gz \
|
||||
&& tar xzf /tmp/otel-collector.tar.gz -C /usr/local/bin \
|
||||
&& rm /tmp/otel-collector.tar.gz \
|
||||
&& mkdir -p /etc/otel
|
||||
|
||||
# Add OpenTelemetry Collector configs
|
||||
COPY otel-collector-config-file.yaml /etc/otel/config-file.yaml
|
||||
COPY otel-collector-config-clickhouse.yaml /etc/otel/config-clickhouse.yaml
|
||||
|
||||
ARG LETTA_ENVIRONMENT=PRODUCTION
|
||||
ENV LETTA_ENVIRONMENT=${LETTA_ENVIRONMENT} \
|
||||
@@ -54,7 +64,8 @@ ENV LETTA_ENVIRONMENT=${LETTA_ENVIRONMENT} \
|
||||
POSTGRES_USER=letta \
|
||||
POSTGRES_PASSWORD=letta \
|
||||
POSTGRES_DB=letta \
|
||||
COMPOSIO_DISABLE_VERSION_CHECK=true
|
||||
COMPOSIO_DISABLE_VERSION_CHECK=true \
|
||||
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
@@ -64,7 +75,7 @@ COPY --from=builder /app .
|
||||
# Copy initialization SQL if it exists
|
||||
COPY init.sql /docker-entrypoint-initdb.d/
|
||||
|
||||
EXPOSE 8283 5432
|
||||
EXPOSE 8283 5432 4317 4318
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
|
||||
CMD ["./letta/server/startup.sh"]
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
services:
|
||||
letta_server:
|
||||
environment:
|
||||
- ENV_NAME=${ENV_NAME} # optional service name
|
||||
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317
|
||||
|
||||
otel-collector:
|
||||
image: otel/opentelemetry-collector-contrib:0.92.0
|
||||
command: ["--config=/etc/otel-collector-config.yaml"]
|
||||
volumes:
|
||||
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
||||
environment:
|
||||
- CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT}
|
||||
- CLICKHOUSE_DATABASE=${CLICKHOUSE_DATABASE}
|
||||
- CLICKHOUSE_USER=${CLICKHOUSE_USER}
|
||||
- CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD}
|
||||
ports:
|
||||
- "4317:4317"
|
||||
- "4318:4318"
|
||||
@@ -49,6 +49,10 @@ services:
|
||||
- VLLM_API_BASE=${VLLM_API_BASE}
|
||||
- OPENLLM_AUTH_TYPE=${OPENLLM_AUTH_TYPE}
|
||||
- OPENLLM_API_KEY=${OPENLLM_API_KEY}
|
||||
- CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT}
|
||||
- CLICKHOUSE_DATABASE=${CLICKHOUSE_DATABASE}
|
||||
- CLICKHOUSE_USERNAME=${CLICKHOUSE_USERNAME}
|
||||
- CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD}
|
||||
# volumes:
|
||||
# - ./configs/server_config.yaml:/root/.letta/config # config file
|
||||
# - ~/.letta/credentials:/root/.letta/credentials # credentials file
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
__version__ = "0.6.40"
|
||||
__version__ = "0.6.41"
|
||||
|
||||
# import clients
|
||||
from letta.client.client import LocalClient, RESTClient, create_client
|
||||
|
||||
@@ -53,6 +53,26 @@ if [ "${SECURE:-false}" = "true" ]; then
|
||||
CMD="$CMD --secure"
|
||||
fi
|
||||
|
||||
# Start OpenTelemetry Collector in the background
|
||||
if [ -n "$CLICKHOUSE_ENDPOINT" ] && [ -n "$CLICKHOUSE_PASSWORD" ]; then
|
||||
echo "Starting OpenTelemetry Collector with Clickhouse export..."
|
||||
CONFIG_FILE="/etc/otel/config-clickhouse.yaml"
|
||||
else
|
||||
echo "Starting OpenTelemetry Collector with file export only..."
|
||||
CONFIG_FILE="/etc/otel/config-file.yaml"
|
||||
fi
|
||||
|
||||
/usr/local/bin/otelcol-contrib --config "$CONFIG_FILE" &
|
||||
OTEL_PID=$!
|
||||
|
||||
# Function to cleanup processes on exit
|
||||
cleanup() {
|
||||
echo "Shutting down..."
|
||||
kill $OTEL_PID
|
||||
wait $OTEL_PID
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
echo "Starting Letta server at http://$HOST:$PORT..."
|
||||
echo "Executing: $CMD"
|
||||
exec $CMD
|
||||
|
||||
@@ -59,7 +59,6 @@ from letta.services.passage_manager import PassageManager
|
||||
from letta.services.source_manager import SourceManager
|
||||
from letta.services.tool_manager import ToolManager
|
||||
from letta.settings import settings
|
||||
from letta.tracing import trace_method
|
||||
from letta.utils import enforce_types, united_diff
|
||||
|
||||
logger = get_logger(__name__)
|
||||
@@ -83,7 +82,6 @@ class AgentManager:
|
||||
# ======================================================================================================================
|
||||
# Basic CRUD operations
|
||||
# ======================================================================================================================
|
||||
@trace_method
|
||||
@enforce_types
|
||||
def create_agent(
|
||||
self,
|
||||
@@ -446,7 +444,6 @@ class AgentManager:
|
||||
agent = AgentModel.read(db_session=session, name=agent_name, actor=actor)
|
||||
return agent.to_pydantic()
|
||||
|
||||
@trace_method
|
||||
@enforce_types
|
||||
def delete_agent(self, agent_id: str, actor: PydanticUser) -> None:
|
||||
"""
|
||||
|
||||
@@ -173,6 +173,7 @@ class Settings(BaseSettings):
|
||||
|
||||
# telemetry logging
|
||||
verbose_telemetry_logging: bool = False
|
||||
otel_exporter_otlp_endpoint: str = "http://localhost:4317"
|
||||
|
||||
# uvicorn settings
|
||||
uvicorn_workers: int = 1
|
||||
|
||||
@@ -207,7 +207,7 @@ def log_event(name: str, attributes: Optional[Dict[str, Any]] = None, timestamp:
|
||||
current_span = trace.get_current_span()
|
||||
if current_span:
|
||||
if timestamp is None:
|
||||
timestamp = int(time.perf_counter_ns())
|
||||
timestamp = time.time_ns()
|
||||
|
||||
def _safe_convert(v):
|
||||
if isinstance(v, (str, bool, int, float)):
|
||||
|
||||
73
otel-collector-config-clickhouse.yaml
Normal file
73
otel-collector-config-clickhouse.yaml
Normal file
@@ -0,0 +1,73 @@
|
||||
receivers:
|
||||
otlp:
|
||||
protocols:
|
||||
grpc:
|
||||
endpoint: 0.0.0.0:4317
|
||||
http:
|
||||
endpoint: 0.0.0.0:4318
|
||||
filelog:
|
||||
include:
|
||||
- /root/.letta/logs/Letta.log
|
||||
multiline:
|
||||
line_start_pattern: ^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3}
|
||||
operators:
|
||||
# Extract timestamp and other fields
|
||||
- type: regex_parser
|
||||
regex: '^(?P<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3})\s+-\s+(?P<component>[\w\.-]+)\s+-\s+(?P<severity>\w+)\s+-\s+(?P<body>.*)$'
|
||||
# Parse the timestamp
|
||||
- type: time_parser
|
||||
parse_from: attributes.timestamp
|
||||
layout: '%Y-%m-%d %H:%M:%S,%L'
|
||||
# Set severity
|
||||
- type: severity_parser
|
||||
parse_from: attributes.severity
|
||||
mapping:
|
||||
debug: DEBUG
|
||||
info: INFO
|
||||
warning: WARN
|
||||
error: ERROR
|
||||
critical: FATAL
|
||||
# Add resource attributes
|
||||
- type: add
|
||||
field: resource.service_name
|
||||
value: letta-server
|
||||
- type: add
|
||||
field: resource.environment
|
||||
value: ${ENV_NAME}
|
||||
|
||||
processors:
|
||||
batch:
|
||||
timeout: 1s
|
||||
send_batch_size: 1024
|
||||
|
||||
exporters:
|
||||
file:
|
||||
path: /root/.letta/logs/traces.json
|
||||
rotation:
|
||||
max_megabytes: 100
|
||||
max_days: 7
|
||||
max_backups: 5
|
||||
clickhouse:
|
||||
endpoint: ${CLICKHOUSE_ENDPOINT}
|
||||
database: ${CLICKHOUSE_DATABASE}
|
||||
username: ${CLICKHOUSE_USERNAME}
|
||||
password: ${CLICKHOUSE_PASSWORD}
|
||||
timeout: 5s
|
||||
sending_queue:
|
||||
queue_size: 100
|
||||
retry_on_failure:
|
||||
enabled: true
|
||||
initial_interval: 5s
|
||||
max_interval: 30s
|
||||
max_elapsed_time: 300s
|
||||
|
||||
service:
|
||||
pipelines:
|
||||
traces:
|
||||
receivers: [otlp]
|
||||
processors: [batch]
|
||||
exporters: [file, clickhouse]
|
||||
logs:
|
||||
receivers: [filelog]
|
||||
processors: [batch]
|
||||
exporters: [clickhouse]
|
||||
27
otel-collector-config-file.yaml
Normal file
27
otel-collector-config-file.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
receivers:
|
||||
otlp:
|
||||
protocols:
|
||||
grpc:
|
||||
endpoint: 0.0.0.0:4317
|
||||
http:
|
||||
endpoint: 0.0.0.0:4318
|
||||
|
||||
processors:
|
||||
batch:
|
||||
timeout: 1s
|
||||
send_batch_size: 1024
|
||||
|
||||
exporters:
|
||||
file:
|
||||
path: /root/.letta/logs/traces.json
|
||||
rotation:
|
||||
max_megabytes: 100
|
||||
max_days: 7
|
||||
max_backups: 5
|
||||
|
||||
service:
|
||||
pipelines:
|
||||
traces:
|
||||
receivers: [otlp]
|
||||
processors: [batch]
|
||||
exporters: [file]
|
||||
@@ -1,32 +0,0 @@
|
||||
receivers:
|
||||
otlp:
|
||||
protocols:
|
||||
grpc:
|
||||
endpoint: 0.0.0.0:4317
|
||||
http:
|
||||
endpoint: 0.0.0.0:4318
|
||||
|
||||
processors:
|
||||
batch:
|
||||
timeout: 1s
|
||||
send_batch_size: 1024
|
||||
|
||||
exporters:
|
||||
clickhouse:
|
||||
endpoint: ${CLICKHOUSE_ENDPOINT}
|
||||
username: ${CLICKHOUSE_USER}
|
||||
password: ${CLICKHOUSE_PASSWORD}
|
||||
database: ${CLICKHOUSE_DATABASE}
|
||||
timeout: 10s
|
||||
retry_on_failure:
|
||||
enabled: true
|
||||
initial_interval: 5s
|
||||
max_interval: 30s
|
||||
max_elapsed_time: 300s
|
||||
|
||||
service:
|
||||
pipelines:
|
||||
traces:
|
||||
receivers: [otlp]
|
||||
processors: [batch]
|
||||
exporters: [clickhouse]
|
||||
80
poetry.lock
generated
80
poetry.lock
generated
@@ -1,4 +1,4 @@
|
||||
# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
|
||||
# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.
|
||||
|
||||
[[package]]
|
||||
name = "aiohappyeyeballs"
|
||||
@@ -447,17 +447,17 @@ files = [
|
||||
|
||||
[[package]]
|
||||
name = "boto3"
|
||||
version = "1.37.12"
|
||||
version = "1.37.13"
|
||||
description = "The AWS SDK for Python"
|
||||
optional = true
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "boto3-1.37.12-py3-none-any.whl", hash = "sha256:516feaa0d2afaeda1515216fd09291368a1215754bbccb0f28414c0a91a830a2"},
|
||||
{file = "boto3-1.37.12.tar.gz", hash = "sha256:9412d404f103ad6d14f033eb29cd5e0cdca2b9b08cbfa9d4dabd1d7be2de2625"},
|
||||
{file = "boto3-1.37.13-py3-none-any.whl", hash = "sha256:90fa5a91d7d7456219f0b7c4a93b38335dc5cf4613d885da4d4c1d099e04c6b7"},
|
||||
{file = "boto3-1.37.13.tar.gz", hash = "sha256:295648f887464ab74c5c301a44982df76f9ba39ebfc16be5b8f071ad1a81fe95"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
botocore = ">=1.37.12,<1.38.0"
|
||||
botocore = ">=1.37.13,<1.38.0"
|
||||
jmespath = ">=0.7.1,<2.0.0"
|
||||
s3transfer = ">=0.11.0,<0.12.0"
|
||||
|
||||
@@ -466,13 +466,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
|
||||
|
||||
[[package]]
|
||||
name = "botocore"
|
||||
version = "1.37.12"
|
||||
version = "1.37.13"
|
||||
description = "Low-level, data-driven core of boto 3."
|
||||
optional = true
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "botocore-1.37.12-py3-none-any.whl", hash = "sha256:ba1948c883bbabe20d95ff62c3e36954c9269686f7db9361857835677ca3e676"},
|
||||
{file = "botocore-1.37.12.tar.gz", hash = "sha256:ae2d5328ce6ad02eb615270507235a6e90fd3eeed615a6c0732b5a68b12f2017"},
|
||||
{file = "botocore-1.37.13-py3-none-any.whl", hash = "sha256:aa417bac0f4d79533080e6e17c0509e149353aec83cfe7879597a7942f7f08d0"},
|
||||
{file = "botocore-1.37.13.tar.gz", hash = "sha256:60dfb831c54eb466db9b91891a6c8a0c223626caa049969d5d42858ad1e7f8c7"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -874,13 +874,13 @@ test = ["pytest"]
|
||||
|
||||
[[package]]
|
||||
name = "composio-core"
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
description = "Core package to act as a bridge between composio platform and other services."
|
||||
optional = false
|
||||
python-versions = "<4,>=3.9"
|
||||
files = [
|
||||
{file = "composio_core-0.7.7-py3-none-any.whl", hash = "sha256:2ee4824ea916509fb374ca11243bc9379f2fac01fa17fdfa23255e8a06f65ef8"},
|
||||
{file = "composio_core-0.7.7.tar.gz", hash = "sha256:386f14c906c9dd121c7af65cb12197e20c16633278627be06f89c821d17eeecb"},
|
||||
{file = "composio_core-0.7.8-py3-none-any.whl", hash = "sha256:c481f02d64e1b7f5a7907bde626c36271b116cc6c7d82439ce37f7f7bbeea583"},
|
||||
{file = "composio_core-0.7.8.tar.gz", hash = "sha256:7bf5fde0889c353fd79654e90f216f60cc8c36b190b1b406bfa95d6fcfcdc73f"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -911,13 +911,13 @@ tools = ["diskcache", "flake8", "networkx", "pathspec", "pygments", "ruff", "tra
|
||||
|
||||
[[package]]
|
||||
name = "composio-langchain"
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
description = "Use Composio to get an array of tools with your LangChain agent."
|
||||
optional = false
|
||||
python-versions = "<4,>=3.9"
|
||||
files = [
|
||||
{file = "composio_langchain-0.7.7-py3-none-any.whl", hash = "sha256:514ce3ccdb3dbea5ce24df55a967fa7297384235195eb1976d47e39bfe745252"},
|
||||
{file = "composio_langchain-0.7.7.tar.gz", hash = "sha256:9d520c523222c068a2601f5396acee9bcb3e25649069eea229c65adf9c26147b"},
|
||||
{file = "composio_langchain-0.7.8-py3-none-any.whl", hash = "sha256:78c49c8387d83e573b3d4837325c9f44ff4ca0adc0a9aadbaf31d6953ed01ef3"},
|
||||
{file = "composio_langchain-0.7.8.tar.gz", hash = "sha256:b6dd2f9ff0bdd50e01200d837e1d00806590591da4abd3bf1067e17b3efbbd62"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -1332,13 +1332,13 @@ standard = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "htt
|
||||
|
||||
[[package]]
|
||||
name = "filelock"
|
||||
version = "3.17.0"
|
||||
version = "3.18.0"
|
||||
description = "A platform independent file lock."
|
||||
optional = true
|
||||
python-versions = ">=3.9"
|
||||
files = [
|
||||
{file = "filelock-3.17.0-py3-none-any.whl", hash = "sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338"},
|
||||
{file = "filelock-3.17.0.tar.gz", hash = "sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e"},
|
||||
{file = "filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de"},
|
||||
{file = "filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2"},
|
||||
]
|
||||
|
||||
[package.extras]
|
||||
@@ -2630,13 +2630,13 @@ tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10"
|
||||
|
||||
[[package]]
|
||||
name = "langchain-core"
|
||||
version = "0.3.44"
|
||||
version = "0.3.45"
|
||||
description = "Building applications with LLMs through composability"
|
||||
optional = false
|
||||
python-versions = "<4.0,>=3.9"
|
||||
files = [
|
||||
{file = "langchain_core-0.3.44-py3-none-any.whl", hash = "sha256:d989ce8bd62f1d07765acd575e6ec1254aec0cf7775aaea39fe4af8102377459"},
|
||||
{file = "langchain_core-0.3.44.tar.gz", hash = "sha256:7c0a01e78360f007cbca448178fe7e032404068e6431dbe8ce905f84febbdfa5"},
|
||||
{file = "langchain_core-0.3.45-py3-none-any.whl", hash = "sha256:fe560d644c102c3f5dcfb44eb5295e26d22deab259fdd084f6b1b55a0350b77c"},
|
||||
{file = "langchain_core-0.3.45.tar.gz", hash = "sha256:a39b8446495d1ea97311aa726478c0a13ef1d77cb7644350bad6d9d3c0141a0c"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -2699,13 +2699,13 @@ types-requests = ">=2.31.0.2,<3.0.0.0"
|
||||
|
||||
[[package]]
|
||||
name = "langsmith"
|
||||
version = "0.3.13"
|
||||
version = "0.3.14"
|
||||
description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform."
|
||||
optional = false
|
||||
python-versions = "<4.0,>=3.9"
|
||||
files = [
|
||||
{file = "langsmith-0.3.13-py3-none-any.whl", hash = "sha256:73aaf52bbc293b9415fff4f6dad68df40658081eb26c9cb2c7bd1ff57cedd695"},
|
||||
{file = "langsmith-0.3.13.tar.gz", hash = "sha256:14014058cff408772acb93344e03cb64174837292d5f1ae09b2c8c1d8df45e92"},
|
||||
{file = "langsmith-0.3.14-py3-none-any.whl", hash = "sha256:1c3565aa5199c7ef40a21898ea9a9132fb3c0dae1d4dafc76ef27a83c5807a2f"},
|
||||
{file = "langsmith-0.3.14.tar.gz", hash = "sha256:54d9f74015bc533201b945ed03de8f45d9cb9cca6e63c58d7d3d277515d4c338"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -2726,13 +2726,13 @@ pytest = ["pytest (>=7.0.0)", "rich (>=13.9.4,<14.0.0)"]
|
||||
|
||||
[[package]]
|
||||
name = "letta-client"
|
||||
version = "0.1.68"
|
||||
version = "0.1.71"
|
||||
description = ""
|
||||
optional = false
|
||||
python-versions = "<4.0,>=3.8"
|
||||
files = [
|
||||
{file = "letta_client-0.1.68-py3-none-any.whl", hash = "sha256:2b027f79281560abc88a7033b8ff4b3ecdd3be7ba2fa4f17f844ec0ba8d7dfe1"},
|
||||
{file = "letta_client-0.1.68.tar.gz", hash = "sha256:c956498c6e0d726ec3f205a1dbaa0552d7945147a30d45ca7ea8ee7b77ac81aa"},
|
||||
{file = "letta_client-0.1.71-py3-none-any.whl", hash = "sha256:b18831ae94c2e5685a95e0cec2f7530cebe1d26377a6e3aee6c193518cd855f6"},
|
||||
{file = "letta_client-0.1.71.tar.gz", hash = "sha256:4c5a865cfef82091f005dbe1f3280bcd44bcc37bebd472f8145c881e9dd4d074"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -2778,19 +2778,19 @@ python-dotenv = ">=1.0.1,<2.0.0"
|
||||
|
||||
[[package]]
|
||||
name = "llama-index"
|
||||
version = "0.12.23"
|
||||
version = "0.12.24"
|
||||
description = "Interface between LLMs and your data"
|
||||
optional = false
|
||||
python-versions = "<4.0,>=3.9"
|
||||
files = [
|
||||
{file = "llama_index-0.12.23-py3-none-any.whl", hash = "sha256:a099e06005f0e776a75b1cbac68af966bd2866c31f868d5c4f4e5be6ba641c60"},
|
||||
{file = "llama_index-0.12.23.tar.gz", hash = "sha256:af1e3b0ecb63c2e6ff95874189ca68e3fcdba19bb312abb7df19c6855cc709c0"},
|
||||
{file = "llama_index-0.12.24-py3-none-any.whl", hash = "sha256:9b35c90110177630d7bfd1f92c5ccd637ec3bbeebb268b8d29e29639ae3fb0bb"},
|
||||
{file = "llama_index-0.12.24.tar.gz", hash = "sha256:66f2c064620a5ef7f0fb858d79b3ea45bdd04efefd3b4ebb5e557295681fff24"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
llama-index-agent-openai = ">=0.4.0,<0.5.0"
|
||||
llama-index-cli = ">=0.4.1,<0.5.0"
|
||||
llama-index-core = ">=0.12.23,<0.13.0"
|
||||
llama-index-core = ">=0.12.24,<0.13.0"
|
||||
llama-index-embeddings-openai = ">=0.3.0,<0.4.0"
|
||||
llama-index-indices-managed-llama-cloud = ">=0.4.0"
|
||||
llama-index-llms-openai = ">=0.3.0,<0.4.0"
|
||||
@@ -2835,13 +2835,13 @@ llama-index-llms-openai = ">=0.3.0,<0.4.0"
|
||||
|
||||
[[package]]
|
||||
name = "llama-index-core"
|
||||
version = "0.12.23.post2"
|
||||
version = "0.12.24.post1"
|
||||
description = "Interface between LLMs and your data"
|
||||
optional = false
|
||||
python-versions = "<4.0,>=3.9"
|
||||
files = [
|
||||
{file = "llama_index_core-0.12.23.post2-py3-none-any.whl", hash = "sha256:3665583d69ca9859b019aacf9496af29ec2fa3b24d031344ddeeefb0dbd00e26"},
|
||||
{file = "llama_index_core-0.12.23.post2.tar.gz", hash = "sha256:b8e8abc2c11c2fa26bbfeebc79b00d8d12aaba370e43e3450045b50048744b90"},
|
||||
{file = "llama_index_core-0.12.24.post1-py3-none-any.whl", hash = "sha256:cc2cb1f0508b6a7ae85dae72082a4e597e29fca349c67b7e319c2698f24cac61"},
|
||||
{file = "llama_index_core-0.12.24.post1.tar.gz", hash = "sha256:2d0ab7e819dc064a8a9256cf2719d25fe12018fc5357e681a2e97f7b5988562c"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -2885,13 +2885,13 @@ openai = ">=1.1.0"
|
||||
|
||||
[[package]]
|
||||
name = "llama-index-indices-managed-llama-cloud"
|
||||
version = "0.6.8"
|
||||
version = "0.6.9"
|
||||
description = "llama-index indices llama-cloud integration"
|
||||
optional = false
|
||||
python-versions = "<4.0,>=3.9"
|
||||
files = [
|
||||
{file = "llama_index_indices_managed_llama_cloud-0.6.8-py3-none-any.whl", hash = "sha256:b741fa3c286fb91600d8e54a4c62084b5e230ea624c2a778a202ed4abf6a8e9b"},
|
||||
{file = "llama_index_indices_managed_llama_cloud-0.6.8.tar.gz", hash = "sha256:6581a1a4e966c80d108706880dc39a12e38634eddff9e859f2cc0d4bb11c6483"},
|
||||
{file = "llama_index_indices_managed_llama_cloud-0.6.9-py3-none-any.whl", hash = "sha256:8f4002d6d508b8afe7edd003d41e7236868b2774ec0ca266e84d002616e5b96c"},
|
||||
{file = "llama_index_indices_managed_llama_cloud-0.6.9.tar.gz", hash = "sha256:c6450ef8aa99643cf8e78e1371b861a4f209a3bb80b3ec67fd937741f9da8e74"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -3209,13 +3209,13 @@ traitlets = "*"
|
||||
|
||||
[[package]]
|
||||
name = "mcp"
|
||||
version = "1.4.0"
|
||||
version = "1.4.1"
|
||||
description = "Model Context Protocol SDK"
|
||||
optional = false
|
||||
python-versions = ">=3.10"
|
||||
files = [
|
||||
{file = "mcp-1.4.0-py3-none-any.whl", hash = "sha256:d2760e1ea7635b1e70da516698620a016cde214976416dd894f228600b08984c"},
|
||||
{file = "mcp-1.4.0.tar.gz", hash = "sha256:5b750b14ca178eeb7b2addbd94adb21785d7b4de5d5f3577ae193d787869e2dd"},
|
||||
{file = "mcp-1.4.1-py3-none-any.whl", hash = "sha256:a7716b1ec1c054e76f49806f7d96113b99fc1166fc9244c2c6f19867cb75b593"},
|
||||
{file = "mcp-1.4.1.tar.gz", hash = "sha256:b9655d2de6313f9d55a7d1df62b3c3fe27a530100cc85bf23729145b0dba4c7a"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -4385,7 +4385,6 @@ files = [
|
||||
{file = "psycopg2-2.9.10-cp311-cp311-win_amd64.whl", hash = "sha256:0435034157049f6846e95103bd8f5a668788dd913a7c30162ca9503fdf542cb4"},
|
||||
{file = "psycopg2-2.9.10-cp312-cp312-win32.whl", hash = "sha256:65a63d7ab0e067e2cdb3cf266de39663203d38d6a8ed97f5ca0cb315c73fe067"},
|
||||
{file = "psycopg2-2.9.10-cp312-cp312-win_amd64.whl", hash = "sha256:4a579d6243da40a7b3182e0430493dbd55950c493d8c68f4eec0b302f6bbf20e"},
|
||||
{file = "psycopg2-2.9.10-cp313-cp313-win_amd64.whl", hash = "sha256:91fd603a2155da8d0cfcdbf8ab24a2d54bca72795b90d2a3ed2b6da8d979dee2"},
|
||||
{file = "psycopg2-2.9.10-cp39-cp39-win32.whl", hash = "sha256:9d5b3b94b79a844a986d029eee38998232451119ad653aea42bb9220a8c5066b"},
|
||||
{file = "psycopg2-2.9.10-cp39-cp39-win_amd64.whl", hash = "sha256:88138c8dedcbfa96408023ea2b0c369eda40fe5d75002c0964c78f46f11fa442"},
|
||||
{file = "psycopg2-2.9.10.tar.gz", hash = "sha256:12ec0b40b0273f95296233e8750441339298e6a572f7039da5b260e3c8b60e11"},
|
||||
@@ -4445,7 +4444,6 @@ files = [
|
||||
{file = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:bb89f0a835bcfc1d42ccd5f41f04870c1b936d8507c6df12b7737febc40f0909"},
|
||||
{file = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f0c2d907a1e102526dd2986df638343388b94c33860ff3bbe1384130828714b1"},
|
||||
{file = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f8157bed2f51db683f31306aa497311b560f2265998122abe1dce6428bd86567"},
|
||||
{file = "psycopg2_binary-2.9.10-cp313-cp313-win_amd64.whl", hash = "sha256:27422aa5f11fbcd9b18da48373eb67081243662f9b46e6fd07c3eb46e4535142"},
|
||||
{file = "psycopg2_binary-2.9.10-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:eb09aa7f9cecb45027683bb55aebaaf45a0df8bf6de68801a6afdc7947bb09d4"},
|
||||
{file = "psycopg2_binary-2.9.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b73d6d7f0ccdad7bc43e6d34273f70d587ef62f824d7261c4ae9b8b1b6af90e8"},
|
||||
{file = "psycopg2_binary-2.9.10-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce5ab4bf46a211a8e924d307c1b1fcda82368586a19d0a24f8ae166f5c784864"},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[tool.poetry]
|
||||
name = "letta"
|
||||
version = "0.6.40"
|
||||
version = "0.6.41"
|
||||
packages = [
|
||||
{include = "letta"},
|
||||
]
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
import asyncio
|
||||
import json
|
||||
import os
|
||||
import threading
|
||||
import time
|
||||
import uuid
|
||||
from typing import List, Union
|
||||
|
||||
import pytest
|
||||
from dotenv import load_dotenv
|
||||
from letta_client import AgentState, JobStatus, Letta, MessageCreate, MessageRole
|
||||
from letta_client import AgentState, Letta, MessageCreate
|
||||
from letta_client.core.api_error import ApiError
|
||||
from sqlalchemy import delete
|
||||
|
||||
|
||||
@@ -5,8 +5,6 @@ import time
|
||||
import pytest
|
||||
from dotenv import load_dotenv
|
||||
from letta_client import AgentState, Letta, LlmConfig, MessageCreate
|
||||
from letta_client.core.api_error import ApiError
|
||||
from pytest import fixture
|
||||
|
||||
|
||||
def run_server():
|
||||
|
||||
Reference in New Issue
Block a user