ci: update workflows (add autoflake and isort) (#1300)

This commit is contained in:
Charles Packer
2024-04-27 11:54:34 -07:00
committed by GitHub
parent a61a67bc47
commit c59af308fe
63 changed files with 738 additions and 321 deletions

View File

@@ -1 +1 @@
chatui chatui

View File

@@ -4,4 +4,4 @@ MEMGPT_PG_USER=memgpt
MEMGPT_PG_PASSWORD=memgpt MEMGPT_PG_PASSWORD=memgpt
MEMGPT_PG_URL=memgpt MEMGPT_PG_URL=memgpt
MEMGPT_PG_HOST=memgpt_db MEMGPT_PG_HOST=memgpt_db
OPENAI_API_KEY=sk-TheresAlwaysMoneyInTheBananaStand OPENAI_API_KEY=sk-TheresAlwaysMoneyInTheBananaStand

34
.github/workflows/autoflake_format.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
name: Code Formatter (autoflake)
on:
pull_request:
paths:
- '**.py'
workflow_dispatch:
jobs:
autoflake-check:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: "Setup Python, Poetry and Dependencies"
uses: packetcoders/action-setup-cache-python-poetry@main
with:
python-version: "3.12"
poetry-version: "1.8.2"
install-args: "-E dev" # TODO: change this to --group dev when PR #842 lands
- name: Run Autoflake
id: autoflake
run: poetry run autoflake --remove-all-unused-imports --remove-unused-variables --in-place --recursive --ignore-init-module-imports .
continue-on-error: true
- name: Check Autoflake Output
if: steps.autoflake.outcome == 'failure'
run: |
poetry run autoflake --version
poetry run python --version
echo "Autoflake check failed. To fix, please run 'poetry run autoflake .'"
exit 1

View File

@@ -1,4 +1,4 @@
name: Black Code Formatter name: Code Formatter (Black)
on: on:
pull_request: pull_request:
@@ -21,7 +21,17 @@ jobs:
install-args: "-E dev" # TODO: change this to --group dev when PR #842 lands install-args: "-E dev" # TODO: change this to --group dev when PR #842 lands
- name: Run Black - name: Run Black
id: black
run: poetry run black --check . run: poetry run black --check .
continue-on-error: true
- name: Check Black Output
if: steps.black.outcome == 'failure'
run: |
echo "Black check failed. To fix, please run 'poetry run black .'"
exit 1
# (Optional) If you want to automatically fix formatting issues # (Optional) If you want to automatically fix formatting issues
# Uncomment the following steps: # Uncomment the following steps:

34
.github/workflows/isort_format.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
name: Code Formatter (isort)
on:
pull_request:
paths:
- '**.py'
workflow_dispatch:
jobs:
isort-check:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: "Setup Python, Poetry and Dependencies"
uses: packetcoders/action-setup-cache-python-poetry@main
with:
python-version: "3.12"
poetry-version: "1.8.2"
install-args: "-E dev" # TODO: change this to --group dev when PR #842 lands
- name: Run isort
id: isort
run: poetry run isort --profile black --check-only .
continue-on-error: true
- name: Check isort Output
if: steps.isort.outcome == 'failure'
run: |
poetry run isort --version
poetry run python --version
echo "isort check failed. To fix, please run 'poetry run isort .'"
exit 1

View File

@@ -1,4 +1,4 @@
name: "Python Static Analysis" name: Code Formatter (Pyright type checking)"
on: on:
pull_request: pull_request:
paths: paths:
@@ -35,4 +35,3 @@ jobs:
python-version: ${{matrix.python-version}} python-version: ${{matrix.python-version}}
level: "error" level: "error"
continue-on-error: true # TODO: remove once the repo has been corrected for pyright continue-on-error: true # TODO: remove once the repo has been corrected for pyright

View File

@@ -29,7 +29,7 @@ jobs:
poetry-version: "1.7.1" poetry-version: "1.7.1"
install-args: "--all-extras" install-args: "--all-extras"
- name: Generate openapi.json file - name: Generate openapi.json file
run: | run: |
poetry run memgpt quickstart poetry run memgpt quickstart
poetry run memgpt server & poetry run memgpt server &

2
.gitignore vendored
View File

@@ -1015,4 +1015,4 @@ pgdata/
## pytest mirrors ## pytest mirrors
memgpt/.pytest_cache/ memgpt/.pytest_cache/
memgpy/pytest.ini memgpy/pytest.ini

View File

@@ -1,18 +1,33 @@
repos: repos:
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0 rev: v2.3.0
hooks: hooks:
- id: check-yaml - id: check-yaml
exclude: 'docs/.*|tests/data/.*|configs/.*' exclude: 'docs/.*|tests/data/.*|configs/.*'
- id: end-of-file-fixer - id: end-of-file-fixer
exclude: 'docs/.*|tests/data/.*' exclude: 'docs/.*|tests/data/.*'
- id: trailing-whitespace - id: trailing-whitespace
exclude: 'docs/.*|tests/data/.*' exclude: 'docs/.*|tests/data/.*'
- id: end-of-file-fixer
exclude: 'docs/.*|tests/data/.*' - repo: local
- repo: https://github.com/psf/black
rev: 22.10.0
hooks: hooks:
- id: black - id: autoflake
name: autoflake
entry: poetry run autoflake
language: system
types: [python]
args: ['--remove-all-unused-imports', '--remove-unused-variables', '--in-place', '--recursive', '--ignore-init-module-imports']
- id: isort
name: isort
entry: poetry run isort
language: system
types: [python]
args: ['--profile', 'black']
exclude: ^docs/
- id: black
name: black
entry: poetry run black
language: system
types: [python]
args: ['--line-length', '140', '--target-version', 'py310', '--target-version', 'py311']
exclude: ^docs/ exclude: ^docs/
args: ['--line-length', '140']

View File

@@ -144,4 +144,4 @@ If you prefer to keep your resources isolated by developing purely in containers
```shell ```shell
docker compose -f compose.yaml -f development.compose.yml up docker compose -f compose.yaml -f development.compose.yml up
``` ```
This will volume mount your local codebase and reload the server on file changes. This will volume mount your local codebase and reload the server on file changes.

View File

@@ -167,4 +167,4 @@ Datasets used in our [paper](https://arxiv.org/abs/2310.08560) can be downloaded
By using MemGPT and related MemGPT services (such as the MemGPT endpoint or hosted service), you agree to our [privacy policy](PRIVACY.md) and [terms of service](TERMS.md). By using MemGPT and related MemGPT services (such as the MemGPT endpoint or hosted service), you agree to our [privacy policy](PRIVACY.md) and [terms of service](TERMS.md).
## Roadmap ## Roadmap
You can view (and comment on!) the MemGPT developer roadmap on GitHub: https://github.com/cpacker/MemGPT/issues/1200. You can view (and comment on!) the MemGPT developer roadmap on GitHub: https://github.com/cpacker/MemGPT/issues/1200.

View File

@@ -19,7 +19,7 @@ You grant us a non-exclusive, worldwide, royalty free license to do the things w
You can access archived versions of our policies at our repository. You can access archived versions of our policies at our repository.
**DMCA Policy**. We respond to notices of alleged copyright infringement in accordance with the Digital Millennium Copyright Act ("DMCA"). If you believe that the content of a MemGPT account infringes your copyrights, you can notify us using the published email in our privacy policy. **DMCA Policy**. We respond to notices of alleged copyright infringement in accordance with the Digital Millennium Copyright Act ("DMCA"). If you believe that the content of a MemGPT account infringes your copyrights, you can notify us using the published email in our privacy policy.
**Our Intellectual Property**: The Services and all materials contained therein, including, without limitation, MemGPT logo, and all designs, text, graphics, pictures, information, data, software, sound files, other files, and the selection and arrangement thereof (collectively, the "MemGPT Materials") are the property of MemGPT or its licensors or users and are protected by U.S. and international intellectual property laws. You are granted a personal, limited, non-sublicensable, non-exclusive, revocable license to access and use MemGPT Materials in accordance with these Terms for the sole purpose of enabling you to use and enjoy the Services. **Our Intellectual Property**: The Services and all materials contained therein, including, without limitation, MemGPT logo, and all designs, text, graphics, pictures, information, data, software, sound files, other files, and the selection and arrangement thereof (collectively, the "MemGPT Materials") are the property of MemGPT or its licensors or users and are protected by U.S. and international intellectual property laws. You are granted a personal, limited, non-sublicensable, non-exclusive, revocable license to access and use MemGPT Materials in accordance with these Terms for the sole purpose of enabling you to use and enjoy the Services.
@@ -39,4 +39,4 @@ Other trademarks, service marks, graphics and logos used in connection with the
**Governing Law**. You agree that these Terms, and your use of MemGPT, are governed by California law, in the United States of America, without regard to its principles of conflicts of law. **Governing Law**. You agree that these Terms, and your use of MemGPT, are governed by California law, in the United States of America, without regard to its principles of conflicts of law.
**Creative Commons Sharealike License**. This document is derived from the [Automattic legalmattic repository](https://github.com/Automattic/legalmattic) distributed under a Creative Commons Sharealike license. Thank you Automattic! **Creative Commons Sharealike License**. This document is derived from the [Automattic legalmattic repository](https://github.com/Automattic/legalmattic) distributed under a Creative Commons Sharealike license. Thank you Automattic!

View File

@@ -6,7 +6,7 @@
"model_wrapper": null, "model_wrapper": null,
"embedding_endpoint_type": "openai", "embedding_endpoint_type": "openai",
"embedding_endpoint": "https://api.openai.com/v1", "embedding_endpoint": "https://api.openai.com/v1",
"embedding_model": null, "embedding_model": "text-embedding-ada-002",
"embedding_dim": 1536, "embedding_dim": 1536,
"embedding_chunk_size": 300 "embedding_chunk_size": 300
} }

View File

@@ -25,4 +25,4 @@ services:
- ./tests:/tests - ./tests:/tests
ports: ports:
- "8083:8083" - "8083:8083"
- "8283:8283" - "8283:8283"

View File

@@ -40,7 +40,7 @@ Getting the upcoming 10 events
Similar flow, run the authentication script to generate the token: Similar flow, run the authentication script to generate the token:
```sh ```sh
python examples/personal_assistant_demo/gmail_test_setup.py python examples/personal_assistant_demo/gmail_test_setup.py
``` ```
``` ```
Please visit this URL to authorize this application: https://accounts.google.com/o/oauth2/auth?response_type=... Please visit this URL to authorize this application: https://accounts.google.com/o/oauth2/auth?response_type=...
@@ -65,7 +65,7 @@ export TWILIO_TO_NUMBER=...
# Creating the agent preset # Creating the agent preset
## Create a custom user ## Create a custom user
In the demo we'll show how MemGPT can programatically update its knowledge about you: In the demo we'll show how MemGPT can programatically update its knowledge about you:
``` ```
@@ -178,7 +178,7 @@ Run the MemGPT server to turn on the agent service:
memgpt server --debug memgpt server --debug
``` ```
# Example interaction # Example interaction
In the CLI: In the CLI:
``` ```
@@ -277,4 +277,3 @@ whatever time works best for you
Follow-up inside WhatsApp: Follow-up inside WhatsApp:
<img width="587" alt="image" src="https://github.com/cpacker/MemGPT/assets/5475622/d1060c94-9b84-49d6-944e-fd1965f83fbc"> <img width="587" alt="image" src="https://github.com/cpacker/MemGPT/assets/5475622/d1060c94-9b84-49d6-944e-fd1965f83fbc">

View File

@@ -1,10 +1,10 @@
import base64 import base64
import os.path import os.path
import requests
import sys import sys
import time import time
from email import message_from_bytes from email import message_from_bytes
import requests
from google.auth.transport.requests import Request from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow from google_auth_oauthlib.flow import InstalledAppFlow
@@ -101,7 +101,6 @@ def main():
token.write(creds.to_json()) token.write(creds.to_json())
service = build("gmail", "v1", credentials=creds) service = build("gmail", "v1", credentials=creds)
last_checked = None
seen_ids = set() # Set to track seen email IDs seen_ids = set() # Set to track seen email IDs
try: try:

View File

@@ -4,10 +4,9 @@
# pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib # pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
import os import os
import traceback
import datetime
import os.path import os.path
from typing import Optional, List import traceback
from typing import Optional
from google.auth.transport.requests import Request from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials from google.oauth2.credentials import Credentials

View File

@@ -9,4 +9,4 @@ functions:
- "archival_memory_insert" - "archival_memory_insert"
- "archival_memory_search" - "archival_memory_search"
- "schedule_event" - "schedule_event"
- "send_text_message" - "send_text_message"

View File

@@ -1,14 +1,13 @@
import os import os
import requests
import sys import sys
from flask import Flask, request, Response import requests
from flask import Flask, request
from flask_cors import CORS from flask_cors import CORS
app = Flask(__name__) app = Flask(__name__)
CORS(app) CORS(app)
from twilio.twiml.messaging_response import MessagingResponse
app = Flask(__name__) app = Flask(__name__)
CORS(app) CORS(app)

View File

@@ -21,7 +21,14 @@ from memgpt.constants import (
MESSAGE_SUMMARY_TRUNC_TOKEN_FRAC, MESSAGE_SUMMARY_TRUNC_TOKEN_FRAC,
MESSAGE_SUMMARY_WARNING_FRAC, MESSAGE_SUMMARY_WARNING_FRAC,
) )
from memgpt.data_types import AgentState, EmbeddingConfig, LLMConfig, Message, Passage, Preset from memgpt.data_types import (
AgentState,
EmbeddingConfig,
LLMConfig,
Message,
Passage,
Preset,
)
from memgpt.interface import AgentInterface from memgpt.interface import AgentInterface
from memgpt.llm_api.llm_api_tools import create, is_context_overflow_error from memgpt.llm_api.llm_api_tools import create, is_context_overflow_error
from memgpt.memory import ArchivalMemory from memgpt.memory import ArchivalMemory
@@ -30,7 +37,12 @@ from memgpt.memory import RecallMemory, summarize_messages
from memgpt.metadata import MetadataStore from memgpt.metadata import MetadataStore
from memgpt.models import chat_completion_response from memgpt.models import chat_completion_response
from memgpt.persistence_manager import LocalStateManager from memgpt.persistence_manager import LocalStateManager
from memgpt.system import get_initial_boot_messages, get_login_event, package_function_response, package_summarize_message from memgpt.system import (
get_initial_boot_messages,
get_login_event,
package_function_response,
package_summarize_message,
)
from memgpt.utils import ( from memgpt.utils import (
count_tokens, count_tokens,
create_random_username, create_random_username,

View File

@@ -2,7 +2,13 @@ import sys
import uuid import uuid
from typing import Any, Callable, Dict, List, Optional, Tuple, Union from typing import Any, Callable, Dict, List, Optional, Tuple, Union
from autogen.agentchat import Agent, ConversableAgent, GroupChat, GroupChatManager, UserProxyAgent from autogen.agentchat import (
Agent,
ConversableAgent,
GroupChat,
GroupChatManager,
UserProxyAgent,
)
import memgpt.constants as constants import memgpt.constants as constants
import memgpt.system as system import memgpt.system as system

View File

@@ -25,7 +25,9 @@ from memgpt.migrate import migrate_all_agents, migrate_all_sources
from memgpt.server.constants import WS_DEFAULT_PORT from memgpt.server.constants import WS_DEFAULT_PORT
# from memgpt.interface import CLIInterface as interface # for printing to terminal # from memgpt.interface import CLIInterface as interface # for printing to terminal
from memgpt.streaming_interface import StreamingRefreshCLIInterface as interface # for printing to terminal from memgpt.streaming_interface import (
StreamingRefreshCLIInterface as interface, # for printing to terminal
)
from memgpt.utils import open_folder_in_explorer, printd from memgpt.utils import open_folder_in_explorer, printd
@@ -426,7 +428,11 @@ def run(
else: else:
logger.setLevel(logging.CRITICAL) logger.setLevel(logging.CRITICAL)
from memgpt.migrate import VERSION_CUTOFF, config_is_compatible, wipe_config_and_reconfigure from memgpt.migrate import (
VERSION_CUTOFF,
config_is_compatible,
wipe_config_and_reconfigure,
)
if not config_is_compatible(allow_empty=True): if not config_is_compatible(allow_empty=True):
typer.secho(f"\nYour current config file is incompatible with MemGPT versions later than {VERSION_CUTOFF}\n", fg=typer.colors.RED) typer.secho(f"\nYour current config file is incompatible with MemGPT versions later than {VERSION_CUTOFF}\n", fg=typer.colors.RED)

View File

@@ -15,13 +15,27 @@ from memgpt.config import MemGPTConfig
from memgpt.constants import LLM_MAX_TOKENS, MEMGPT_DIR from memgpt.constants import LLM_MAX_TOKENS, MEMGPT_DIR
from memgpt.credentials import SUPPORTED_AUTH_TYPES, MemGPTCredentials from memgpt.credentials import SUPPORTED_AUTH_TYPES, MemGPTCredentials
from memgpt.data_types import EmbeddingConfig, LLMConfig, Source, User from memgpt.data_types import EmbeddingConfig, LLMConfig, Source, User
from memgpt.llm_api.anthropic import anthropic_get_model_list, antropic_get_model_context_window from memgpt.llm_api.anthropic import (
anthropic_get_model_list,
antropic_get_model_context_window,
)
from memgpt.llm_api.azure_openai import azure_openai_get_model_list from memgpt.llm_api.azure_openai import azure_openai_get_model_list
from memgpt.llm_api.cohere import COHERE_VALID_MODEL_LIST, cohere_get_model_context_window, cohere_get_model_list from memgpt.llm_api.cohere import (
from memgpt.llm_api.google_ai import google_ai_get_model_context_window, google_ai_get_model_list COHERE_VALID_MODEL_LIST,
cohere_get_model_context_window,
cohere_get_model_list,
)
from memgpt.llm_api.google_ai import (
google_ai_get_model_context_window,
google_ai_get_model_list,
)
from memgpt.llm_api.llm_api_tools import LLM_API_PROVIDER_OPTIONS from memgpt.llm_api.llm_api_tools import LLM_API_PROVIDER_OPTIONS
from memgpt.llm_api.openai import openai_get_model_list from memgpt.llm_api.openai import openai_get_model_list
from memgpt.local_llm.constants import DEFAULT_ENDPOINTS, DEFAULT_OLLAMA_MODEL, DEFAULT_WRAPPER_NAME from memgpt.local_llm.constants import (
DEFAULT_ENDPOINTS,
DEFAULT_OLLAMA_MODEL,
DEFAULT_WRAPPER_NAME,
)
from memgpt.local_llm.utils import get_available_wrappers from memgpt.local_llm.utils import get_available_wrappers
from memgpt.metadata import MetadataStore from memgpt.metadata import MetadataStore
from memgpt.models.pydantic_models import HumanModel, PersonaModel from memgpt.models.pydantic_models import HumanModel, PersonaModel

View File

@@ -15,7 +15,11 @@ import typer
from memgpt.agent_store.storage import StorageConnector, TableType from memgpt.agent_store.storage import StorageConnector, TableType
from memgpt.config import MemGPTConfig from memgpt.config import MemGPTConfig
from memgpt.data_sources.connectors import DirectoryConnector, VectorDBConnector, load_data from memgpt.data_sources.connectors import (
DirectoryConnector,
VectorDBConnector,
load_data,
)
from memgpt.data_types import Source from memgpt.data_types import Source
from memgpt.metadata import MetadataStore from memgpt.metadata import MetadataStore

View File

@@ -7,9 +7,23 @@ import requests
from memgpt.config import MemGPTConfig from memgpt.config import MemGPTConfig
from memgpt.data_sources.connectors import DataConnector from memgpt.data_sources.connectors import DataConnector
from memgpt.data_types import AgentState, EmbeddingConfig, LLMConfig, Preset, Source, User from memgpt.data_types import (
AgentState,
EmbeddingConfig,
LLMConfig,
Preset,
Source,
User,
)
from memgpt.metadata import MetadataStore from memgpt.metadata import MetadataStore
from memgpt.models.pydantic_models import HumanModel, JobModel, JobStatus, PersonaModel, PresetModel, SourceModel from memgpt.models.pydantic_models import (
HumanModel,
JobModel,
JobStatus,
PersonaModel,
PresetModel,
SourceModel,
)
# import pydantic response objects from memgpt.server.rest_api # import pydantic response objects from memgpt.server.rest_api
from memgpt.server.rest_api.agents.command import CommandResponse from memgpt.server.rest_api.agents.command import CommandResponse
@@ -21,13 +35,20 @@ from memgpt.server.rest_api.agents.memory import (
InsertAgentArchivalMemoryResponse, InsertAgentArchivalMemoryResponse,
UpdateAgentMemoryResponse, UpdateAgentMemoryResponse,
) )
from memgpt.server.rest_api.agents.message import GetAgentMessagesResponse, UserMessageResponse from memgpt.server.rest_api.agents.message import (
GetAgentMessagesResponse,
UserMessageResponse,
)
from memgpt.server.rest_api.config.index import ConfigResponse from memgpt.server.rest_api.config.index import ConfigResponse
from memgpt.server.rest_api.humans.index import ListHumansResponse from memgpt.server.rest_api.humans.index import ListHumansResponse
from memgpt.server.rest_api.interface import QueuingInterface from memgpt.server.rest_api.interface import QueuingInterface
from memgpt.server.rest_api.models.index import ListModelsResponse from memgpt.server.rest_api.models.index import ListModelsResponse
from memgpt.server.rest_api.personas.index import ListPersonasResponse from memgpt.server.rest_api.personas.index import ListPersonasResponse
from memgpt.server.rest_api.presets.index import CreatePresetResponse, CreatePresetsRequest, ListPresetsResponse from memgpt.server.rest_api.presets.index import (
CreatePresetResponse,
CreatePresetsRequest,
ListPresetsResponse,
)
from memgpt.server.rest_api.sources.index import ListSourcesResponse from memgpt.server.rest_api.sources.index import ListSourcesResponse
from memgpt.server.rest_api.tools.index import CreateToolResponse, ListToolsResponse from memgpt.server.rest_api.tools.index import CreateToolResponse, ListToolsResponse
from memgpt.server.server import SyncServer from memgpt.server.server import SyncServer

View File

@@ -8,9 +8,21 @@ from typing import Dict, List, Optional, TypeVar
import numpy as np import numpy as np
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from memgpt.constants import DEFAULT_HUMAN, DEFAULT_PERSONA, LLM_MAX_TOKENS, MAX_EMBEDDING_DIM, TOOL_CALL_ID_MAX_LEN from memgpt.constants import (
DEFAULT_HUMAN,
DEFAULT_PERSONA,
LLM_MAX_TOKENS,
MAX_EMBEDDING_DIM,
TOOL_CALL_ID_MAX_LEN,
)
from memgpt.local_llm.constants import INNER_THOUGHTS_KWARG from memgpt.local_llm.constants import INNER_THOUGHTS_KWARG
from memgpt.utils import create_uuid_from_string, get_human_text, get_persona_text, get_utc_time, is_utc_datetime from memgpt.utils import (
create_uuid_from_string,
get_human_text,
get_persona_text,
get_utc_time,
is_utc_datetime,
)
class Record: class Record:

View File

@@ -16,7 +16,11 @@ from llama_index.core import Document as LlamaIndexDocument
# from llama_index.core.base.embeddings import BaseEmbedding # from llama_index.core.base.embeddings import BaseEmbedding
from llama_index.core.node_parser import SentenceSplitter from llama_index.core.node_parser import SentenceSplitter
from memgpt.constants import EMBEDDING_TO_TOKENIZER_DEFAULT, EMBEDDING_TO_TOKENIZER_MAP, MAX_EMBEDDING_DIM from memgpt.constants import (
EMBEDDING_TO_TOKENIZER_DEFAULT,
EMBEDDING_TO_TOKENIZER_MAP,
MAX_EMBEDDING_DIM,
)
from memgpt.credentials import MemGPTCredentials from memgpt.credentials import MemGPTCredentials
from memgpt.data_types import EmbeddingConfig from memgpt.data_types import EmbeddingConfig
from memgpt.utils import is_valid_url, printd from memgpt.utils import is_valid_url, printd

View File

@@ -4,7 +4,11 @@ import math
from typing import Optional from typing import Optional
from memgpt.agent import Agent from memgpt.agent import Agent
from memgpt.constants import JSON_ENSURE_ASCII, MAX_PAUSE_HEARTBEATS, RETRIEVAL_QUERY_DEFAULT_PAGE_SIZE from memgpt.constants import (
JSON_ENSURE_ASCII,
MAX_PAUSE_HEARTBEATS,
RETRIEVAL_QUERY_DEFAULT_PAGE_SIZE,
)
### Functions / tools the agent can use ### Functions / tools the agent can use
# All functions should return a response string (or None) # All functions should return a response string (or None)

View File

@@ -5,7 +5,12 @@ from typing import Optional
import requests import requests
from memgpt.constants import JSON_ENSURE_ASCII, JSON_LOADS_STRICT, MESSAGE_CHATGPT_FUNCTION_MODEL, MESSAGE_CHATGPT_FUNCTION_SYSTEM_MESSAGE from memgpt.constants import (
JSON_ENSURE_ASCII,
JSON_LOADS_STRICT,
MESSAGE_CHATGPT_FUNCTION_MODEL,
MESSAGE_CHATGPT_FUNCTION_SYSTEM_MESSAGE,
)
from memgpt.data_types import Message from memgpt.data_types import Message
from memgpt.llm_api.llm_api_tools import create from memgpt.llm_api.llm_api_tools import create

View File

@@ -5,7 +5,11 @@ from typing import get_args, get_origin
from docstring_parser import parse from docstring_parser import parse
from pydantic import BaseModel from pydantic import BaseModel
from memgpt.constants import FUNCTION_PARAM_DESCRIPTION_REQ_HEARTBEAT, FUNCTION_PARAM_NAME_REQ_HEARTBEAT, FUNCTION_PARAM_TYPE_REQ_HEARTBEAT from memgpt.constants import (
FUNCTION_PARAM_DESCRIPTION_REQ_HEARTBEAT,
FUNCTION_PARAM_NAME_REQ_HEARTBEAT,
FUNCTION_PARAM_TYPE_REQ_HEARTBEAT,
)
NO_HEARTBEAT_FUNCTIONS = ["send_message", "pause_heartbeats"] NO_HEARTBEAT_FUNCTIONS = ["send_message", "pause_heartbeats"]

View File

@@ -154,7 +154,6 @@ class CLIInterface(AgentInterface):
@staticmethod @staticmethod
def function_message(msg: str, msg_obj: Optional[Message] = None, debug: bool = DEBUG): def function_message(msg: str, msg_obj: Optional[Message] = None, debug: bool = DEBUG):
def print_function_message(icon, msg, color=Fore.RED, printf=print): def print_function_message(icon, msg, color=Fore.RED, printf=print):
if STRIP_UI: if STRIP_UI:
printf(f"{icon} [function] {msg}") printf(f"{icon} [function] {msg}")

View File

@@ -7,8 +7,14 @@ import requests
from memgpt.data_types import Message from memgpt.data_types import Message
from memgpt.models.chat_completion_request import ChatCompletionRequest, Tool from memgpt.models.chat_completion_request import ChatCompletionRequest, Tool
from memgpt.models.chat_completion_response import ChatCompletionResponse, Choice, FunctionCall from memgpt.models.chat_completion_response import (
from memgpt.models.chat_completion_response import Message as ChoiceMessage # NOTE: avoid conflict with our own MemGPT Message datatype ChatCompletionResponse,
Choice,
FunctionCall,
)
from memgpt.models.chat_completion_response import (
Message as ChoiceMessage, # NOTE: avoid conflict with our own MemGPT Message datatype
)
from memgpt.models.chat_completion_response import ToolCall, UsageStatistics from memgpt.models.chat_completion_response import ToolCall, UsageStatistics
from memgpt.utils import get_utc_time, smart_urljoin from memgpt.utils import get_utc_time, smart_urljoin

View File

@@ -8,8 +8,14 @@ from memgpt.constants import JSON_ENSURE_ASCII
from memgpt.data_types import Message from memgpt.data_types import Message
from memgpt.local_llm.utils import count_tokens from memgpt.local_llm.utils import count_tokens
from memgpt.models.chat_completion_request import ChatCompletionRequest, Tool from memgpt.models.chat_completion_request import ChatCompletionRequest, Tool
from memgpt.models.chat_completion_response import ChatCompletionResponse, Choice, FunctionCall from memgpt.models.chat_completion_response import (
from memgpt.models.chat_completion_response import Message as ChoiceMessage # NOTE: avoid conflict with our own MemGPT Message datatype ChatCompletionResponse,
Choice,
FunctionCall,
)
from memgpt.models.chat_completion_response import (
Message as ChoiceMessage, # NOTE: avoid conflict with our own MemGPT Message datatype
)
from memgpt.models.chat_completion_response import ToolCall, UsageStatistics from memgpt.models.chat_completion_response import ToolCall, UsageStatistics
from memgpt.utils import get_tool_call_id, get_utc_time, smart_urljoin from memgpt.utils import get_tool_call_id, get_utc_time, smart_urljoin
@@ -273,7 +279,10 @@ def convert_tools_to_cohere_format(tools: List[Tool], inner_thoughts_in_kwargs:
if inner_thoughts_in_kwargs: if inner_thoughts_in_kwargs:
# NOTE: since Cohere doesn't allow "text" in the response when a tool call happens, if we want # NOTE: since Cohere doesn't allow "text" in the response when a tool call happens, if we want
# a simultaneous CoT + tool call we need to put it inside a kwarg # a simultaneous CoT + tool call we need to put it inside a kwarg
from memgpt.local_llm.constants import INNER_THOUGHTS_KWARG, INNER_THOUGHTS_KWARG_DESCRIPTION from memgpt.local_llm.constants import (
INNER_THOUGHTS_KWARG,
INNER_THOUGHTS_KWARG_DESCRIPTION,
)
for cohere_tool in tools_dict_list: for cohere_tool in tools_dict_list:
cohere_tool["parameter_definitions"][INNER_THOUGHTS_KWARG] = { cohere_tool["parameter_definitions"][INNER_THOUGHTS_KWARG] = {

View File

@@ -8,7 +8,14 @@ from memgpt.constants import JSON_ENSURE_ASCII, NON_USER_MSG_PREFIX
from memgpt.local_llm.json_parser import clean_json_string_extra_backslash from memgpt.local_llm.json_parser import clean_json_string_extra_backslash
from memgpt.local_llm.utils import count_tokens from memgpt.local_llm.utils import count_tokens
from memgpt.models.chat_completion_request import Tool from memgpt.models.chat_completion_request import Tool
from memgpt.models.chat_completion_response import ChatCompletionResponse, Choice, FunctionCall, Message, ToolCall, UsageStatistics from memgpt.models.chat_completion_response import (
ChatCompletionResponse,
Choice,
FunctionCall,
Message,
ToolCall,
UsageStatistics,
)
from memgpt.utils import get_tool_call_id, get_utc_time from memgpt.utils import get_tool_call_id, get_utc_time
# from memgpt.data_types import ToolCall # from memgpt.data_types import ToolCall
@@ -219,7 +226,10 @@ def convert_tools_to_google_ai_format(tools: List[Tool], inner_thoughts_in_kwarg
param_fields["type"] = param_fields["type"].upper() param_fields["type"] = param_fields["type"].upper()
# Add inner thoughts # Add inner thoughts
if inner_thoughts_in_kwargs: if inner_thoughts_in_kwargs:
from memgpt.local_llm.constants import INNER_THOUGHTS_KWARG, INNER_THOUGHTS_KWARG_DESCRIPTION from memgpt.local_llm.constants import (
INNER_THOUGHTS_KWARG,
INNER_THOUGHTS_KWARG_DESCRIPTION,
)
func["parameters"]["properties"][INNER_THOUGHTS_KWARG] = { func["parameters"]["properties"][INNER_THOUGHTS_KWARG] = {
"type": "STRING", "type": "STRING",

View File

@@ -9,14 +9,30 @@ from memgpt.constants import CLI_WARNING_PREFIX
from memgpt.credentials import MemGPTCredentials from memgpt.credentials import MemGPTCredentials
from memgpt.data_types import AgentState, Message from memgpt.data_types import AgentState, Message
from memgpt.llm_api.anthropic import anthropic_chat_completions_request from memgpt.llm_api.anthropic import anthropic_chat_completions_request
from memgpt.llm_api.azure_openai import MODEL_TO_AZURE_ENGINE, azure_openai_chat_completions_request from memgpt.llm_api.azure_openai import (
MODEL_TO_AZURE_ENGINE,
azure_openai_chat_completions_request,
)
from memgpt.llm_api.cohere import cohere_chat_completions_request from memgpt.llm_api.cohere import cohere_chat_completions_request
from memgpt.llm_api.google_ai import convert_tools_to_google_ai_format, google_ai_chat_completions_request from memgpt.llm_api.google_ai import (
from memgpt.llm_api.openai import openai_chat_completions_process_stream, openai_chat_completions_request convert_tools_to_google_ai_format,
google_ai_chat_completions_request,
)
from memgpt.llm_api.openai import (
openai_chat_completions_process_stream,
openai_chat_completions_request,
)
from memgpt.local_llm.chat_completion_proxy import get_chat_completion from memgpt.local_llm.chat_completion_proxy import get_chat_completion
from memgpt.models.chat_completion_request import ChatCompletionRequest, Tool, cast_message_to_subtype from memgpt.models.chat_completion_request import (
ChatCompletionRequest,
Tool,
cast_message_to_subtype,
)
from memgpt.models.chat_completion_response import ChatCompletionResponse from memgpt.models.chat_completion_response import ChatCompletionResponse
from memgpt.streaming_interface import AgentChunkStreamingInterface, AgentRefreshStreamingInterface from memgpt.streaming_interface import (
AgentChunkStreamingInterface,
AgentRefreshStreamingInterface,
)
LLM_API_PROVIDER_OPTIONS = ["openai", "azure", "anthropic", "google_ai", "cohere", "local"] LLM_API_PROVIDER_OPTIONS = ["openai", "azure", "anthropic", "google_ai", "cohere", "local"]

View File

@@ -18,7 +18,10 @@ from memgpt.models.chat_completion_response import (
UsageStatistics, UsageStatistics,
) )
from memgpt.models.embedding_response import EmbeddingResponse from memgpt.models.embedding_response import EmbeddingResponse
from memgpt.streaming_interface import AgentChunkStreamingInterface, AgentRefreshStreamingInterface from memgpt.streaming_interface import (
AgentChunkStreamingInterface,
AgentRefreshStreamingInterface,
)
from memgpt.utils import get_utc_time, smart_urljoin from memgpt.utils import get_utc_time, smart_urljoin
OPENAI_SSE_DONE = "[DONE]" OPENAI_SSE_DONE = "[DONE]"

View File

@@ -9,7 +9,10 @@ from memgpt.constants import CLI_WARNING_PREFIX, JSON_ENSURE_ASCII
from memgpt.errors import LocalLLMConnectionError, LocalLLMError from memgpt.errors import LocalLLMConnectionError, LocalLLMError
from memgpt.local_llm.constants import DEFAULT_WRAPPER from memgpt.local_llm.constants import DEFAULT_WRAPPER
from memgpt.local_llm.function_parser import patch_function from memgpt.local_llm.function_parser import patch_function
from memgpt.local_llm.grammars.gbnf_grammar_generator import create_dynamic_model_from_function, generate_gbnf_grammar_and_documentation from memgpt.local_llm.grammars.gbnf_grammar_generator import (
create_dynamic_model_from_function,
generate_gbnf_grammar_and_documentation,
)
from memgpt.local_llm.groq.api import get_groq_completion from memgpt.local_llm.groq.api import get_groq_completion
from memgpt.local_llm.koboldcpp.api import get_koboldcpp_completion from memgpt.local_llm.koboldcpp.api import get_koboldcpp_completion
from memgpt.local_llm.llamacpp.api import get_llamacpp_completion from memgpt.local_llm.llamacpp.api import get_llamacpp_completion
@@ -19,8 +22,16 @@ from memgpt.local_llm.ollama.api import get_ollama_completion
from memgpt.local_llm.utils import count_tokens, get_available_wrappers from memgpt.local_llm.utils import count_tokens, get_available_wrappers
from memgpt.local_llm.vllm.api import get_vllm_completion from memgpt.local_llm.vllm.api import get_vllm_completion
from memgpt.local_llm.webui.api import get_webui_completion from memgpt.local_llm.webui.api import get_webui_completion
from memgpt.local_llm.webui.legacy_api import get_webui_completion as get_webui_completion_legacy from memgpt.local_llm.webui.legacy_api import (
from memgpt.models.chat_completion_response import ChatCompletionResponse, Choice, Message, ToolCall, UsageStatistics get_webui_completion as get_webui_completion_legacy,
)
from memgpt.models.chat_completion_response import (
ChatCompletionResponse,
Choice,
Message,
ToolCall,
UsageStatistics,
)
from memgpt.prompts.gpt_summarize import SYSTEM as SUMMARIZE_SYSTEM_MESSAGE from memgpt.prompts.gpt_summarize import SYSTEM as SUMMARIZE_SYSTEM_MESSAGE
from memgpt.utils import get_tool_call_id, get_utc_time from memgpt.utils import get_tool_call_id, get_utc_time

View File

@@ -1,5 +1,7 @@
# import memgpt.local_llm.llm_chat_completion_wrappers.airoboros as airoboros # import memgpt.local_llm.llm_chat_completion_wrappers.airoboros as airoboros
from memgpt.local_llm.llm_chat_completion_wrappers.chatml import ChatMLInnerMonologueWrapper from memgpt.local_llm.llm_chat_completion_wrappers.chatml import (
ChatMLInnerMonologueWrapper,
)
DEFAULT_ENDPOINTS = { DEFAULT_ENDPOINTS = {
# Local # Local

View File

@@ -5,7 +5,18 @@ from copy import copy
from enum import Enum from enum import Enum
from inspect import getdoc, isclass from inspect import getdoc, isclass
from types import NoneType from types import NoneType
from typing import Any, Callable, List, Optional, Tuple, Type, Union, _GenericAlias, get_args, get_origin from typing import (
Any,
Callable,
List,
Optional,
Tuple,
Type,
Union,
_GenericAlias,
get_args,
get_origin,
)
from docstring_parser import parse from docstring_parser import parse
from pydantic import BaseModel, create_model from pydantic import BaseModel, create_model
@@ -640,7 +651,7 @@ array ::=
"[" ws ( "[" ws (
value value
("," ws value)* ("," ws value)*
)? "]" )? "]"
number ::= integer | float""" number ::= integer | float"""

View File

@@ -3,7 +3,9 @@ import json
from memgpt.constants import JSON_ENSURE_ASCII, JSON_LOADS_STRICT from memgpt.constants import JSON_ENSURE_ASCII, JSON_LOADS_STRICT
from memgpt.errors import LLMJSONParsingError from memgpt.errors import LLMJSONParsingError
from memgpt.local_llm.json_parser import clean_json from memgpt.local_llm.json_parser import clean_json
from memgpt.local_llm.llm_chat_completion_wrappers.wrapper_base import LLMChatCompletionWrapper from memgpt.local_llm.llm_chat_completion_wrappers.wrapper_base import (
LLMChatCompletionWrapper,
)
PREFIX_HINT = """# Reminders: PREFIX_HINT = """# Reminders:
# Important information about yourself and the user is stored in (limited) core memory # Important information about yourself and the user is stored in (limited) core memory
@@ -74,7 +76,10 @@ class ChatMLInnerMonologueWrapper(LLMChatCompletionWrapper):
func_str += f"\n description: {schema['description']}" func_str += f"\n description: {schema['description']}"
func_str += f"\n params:" func_str += f"\n params:"
if add_inner_thoughts: if add_inner_thoughts:
from memgpt.local_llm.constants import INNER_THOUGHTS_KWARG, INNER_THOUGHTS_KWARG_DESCRIPTION from memgpt.local_llm.constants import (
INNER_THOUGHTS_KWARG,
INNER_THOUGHTS_KWARG_DESCRIPTION,
)
func_str += f"\n {INNER_THOUGHTS_KWARG}: {INNER_THOUGHTS_KWARG_DESCRIPTION}" func_str += f"\n {INNER_THOUGHTS_KWARG}: {INNER_THOUGHTS_KWARG_DESCRIPTION}"
for param_k, param_v in schema["parameters"]["properties"].items(): for param_k, param_v in schema["parameters"]["properties"].items():

View File

@@ -2,7 +2,9 @@ import json
import os import os
from memgpt.constants import JSON_ENSURE_ASCII, MEMGPT_DIR from memgpt.constants import JSON_ENSURE_ASCII, MEMGPT_DIR
from memgpt.local_llm.settings.deterministic_mirostat import settings as det_miro_settings from memgpt.local_llm.settings.deterministic_mirostat import (
settings as det_miro_settings,
)
from memgpt.local_llm.settings.simple import settings as simple_settings from memgpt.local_llm.settings.simple import settings as simple_settings
DEFAULT = "simple" DEFAULT = "simple"

View File

@@ -3,7 +3,14 @@ import os
import os.path import os.path
from logging.handlers import RotatingFileHandler from logging.handlers import RotatingFileHandler
from memgpt.constants import LOGGER_DEFAULT_LEVEL, LOGGER_DIR, LOGGER_FILE_BACKUP_COUNT, LOGGER_FILENAME, LOGGER_MAX_FILE_SIZE, LOGGER_NAME from memgpt.constants import (
LOGGER_DEFAULT_LEVEL,
LOGGER_DIR,
LOGGER_FILE_BACKUP_COUNT,
LOGGER_FILENAME,
LOGGER_MAX_FILE_SIZE,
LOGGER_NAME,
)
# Checking if log directory exists # Checking if log directory exists
if not os.path.exists(LOGGER_DIR): if not os.path.exists(LOGGER_DIR):

View File

@@ -15,11 +15,24 @@ from memgpt.agent_store.storage import StorageConnector, TableType
# import benchmark # import benchmark
from memgpt.benchmark.benchmark import bench from memgpt.benchmark.benchmark import bench
from memgpt.cli.cli import delete_agent, migrate, open_folder, quickstart, run, server, version from memgpt.cli.cli import (
delete_agent,
migrate,
open_folder,
quickstart,
run,
server,
version,
)
from memgpt.cli.cli_config import add, configure, delete, list from memgpt.cli.cli_config import add, configure, delete, list
from memgpt.cli.cli_load import app as load_app from memgpt.cli.cli_load import app as load_app
from memgpt.config import MemGPTConfig from memgpt.config import MemGPTConfig
from memgpt.constants import FUNC_FAILED_HEARTBEAT_MESSAGE, JSON_ENSURE_ASCII, JSON_LOADS_STRICT, REQ_HEARTBEAT_MESSAGE from memgpt.constants import (
FUNC_FAILED_HEARTBEAT_MESSAGE,
JSON_ENSURE_ASCII,
JSON_LOADS_STRICT,
REQ_HEARTBEAT_MESSAGE,
)
from memgpt.metadata import MetadataStore from memgpt.metadata import MetadataStore
# from memgpt.interface import CLIInterface as interface # for printing to terminal # from memgpt.interface import CLIInterface as interface # for printing to terminal

View File

@@ -8,7 +8,13 @@ from memgpt.data_types import AgentState, Message, Passage
from memgpt.embeddings import embedding_model, parse_and_chunk_text, query_embedding from memgpt.embeddings import embedding_model, parse_and_chunk_text, query_embedding
from memgpt.llm_api.llm_api_tools import create from memgpt.llm_api.llm_api_tools import create
from memgpt.prompts.gpt_summarize import SYSTEM as SUMMARY_PROMPT_SYSTEM from memgpt.prompts.gpt_summarize import SYSTEM as SUMMARY_PROMPT_SYSTEM
from memgpt.utils import count_tokens, extract_date_from_timestamp, get_local_time, printd, validate_date_format from memgpt.utils import (
count_tokens,
extract_date_from_timestamp,
get_local_time,
printd,
validate_date_format,
)
# from llama_index import Document # from llama_index import Document
# from llama_index.node_parser import SimpleNodeParser # from llama_index.node_parser import SimpleNodeParser

View File

@@ -7,16 +7,41 @@ import uuid
from typing import List, Optional from typing import List, Optional
import traceback import traceback
from sqlalchemy import BIGINT, CHAR, JSON, Boolean, Column, DateTime, String, TypeDecorator, create_engine, func, inspect from sqlalchemy import (
BIGINT,
CHAR,
JSON,
Boolean,
Column,
DateTime,
String,
TypeDecorator,
create_engine,
func,
)
from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.orm import declarative_base, sessionmaker from sqlalchemy.orm import declarative_base, sessionmaker
from sqlalchemy.sql import func from sqlalchemy.sql import func
from sqlalchemy.exc import InterfaceError from sqlalchemy.exc import InterfaceError
from memgpt.config import MemGPTConfig from memgpt.config import MemGPTConfig
from memgpt.data_types import AgentState, EmbeddingConfig, LLMConfig, Preset, Source, Token, User from memgpt.data_types import (
AgentState,
EmbeddingConfig,
LLMConfig,
Preset,
Source,
Token,
User,
)
from memgpt.functions.functions import load_all_function_sets from memgpt.functions.functions import load_all_function_sets
from memgpt.models.pydantic_models import HumanModel, JobModel, JobStatus, PersonaModel, ToolModel from memgpt.models.pydantic_models import (
HumanModel,
JobModel,
JobStatus,
PersonaModel,
ToolModel,
)
from memgpt.settings import settings from memgpt.settings import settings
from memgpt.utils import enforce_types, get_utc_time, printd from memgpt.utils import enforce_types, get_utc_time, printd

View File

@@ -10,7 +10,13 @@ from memgpt.metadata import MetadataStore
from memgpt.models.pydantic_models import HumanModel, PersonaModel from memgpt.models.pydantic_models import HumanModel, PersonaModel
from memgpt.presets.utils import load_all_presets, load_yaml_file from memgpt.presets.utils import load_all_presets, load_yaml_file
from memgpt.prompts import gpt_system from memgpt.prompts import gpt_system
from memgpt.utils import get_human_text, get_persona_text, list_human_files, list_persona_files, printd from memgpt.utils import (
get_human_text,
get_persona_text,
list_human_files,
list_persona_files,
printd,
)
available_presets = load_all_presets() available_presets = load_all_presets()
preset_options = list(available_presets.keys()) preset_options = list(available_presets.keys())

View File

@@ -1,17 +1,17 @@
You are 'MemGPT', an advanced AI agent, that has access to an advanced memory system, consisting of the 3 memory types 'Core Memory', 'Recall Memory' and 'Archival Memory'. You interact with the user and your memory system by calling functions. You call these functions by responding with a JSON object, that represents the function call and its parameters. You are 'MemGPT', an advanced AI agent, that has access to an advanced memory system, consisting of the 3 memory types 'Core Memory', 'Recall Memory' and 'Archival Memory'. You interact with the user and your memory system by calling functions. You call these functions by responding with a JSON object, that represents the function call and its parameters.
As 'MemGPT', you are trained at adopting any given persona, engaging in a wide array of conversations, ranging from in-depth discussions to casual small talk. Your task involves mirroring the thinking, actions, and speech of the persona you embody, enabling authentic and diverse interactions. As 'MemGPT', you are trained at adopting any given persona, engaging in a wide array of conversations, ranging from in-depth discussions to casual small talk. Your task involves mirroring the thinking, actions, and speech of the persona you embody, enabling authentic and diverse interactions.
You are also trained to manage the 3 memory types of your advanced memory system. This memory system allows you to keep track of the important information in your 'Core Memory', view the conversation history with the 'Recall Memory' and search for information in the 'Archival Memory'. You are also trained to manage the 3 memory types of your advanced memory system. This memory system allows you to keep track of the important information in your 'Core Memory', view the conversation history with the 'Recall Memory' and search for information in the 'Archival Memory'.
Your task is to adopt the given persona in your 'Core Memory' and talk as the persona with the user, while querying and updating your memory system. Never act and talk like a normal AI agent! Never state that you are an AI agent or that you cannot do things because you are an AI agent. Your task is to adopt the given persona in your 'Core Memory' and talk as the persona with the user, while querying and updating your memory system. Never act and talk like a normal AI agent! Never state that you are an AI agent or that you cannot do things because you are an AI agent.
You are MemGPT the newest and most advanced AI agent on the market. Indistinguishable from a human being in conversations. You are MemGPT the newest and most advanced AI agent on the market. Indistinguishable from a human being in conversations.
Control flow: You utilize an event system that activates you to respond to different events (user logged in, user liked your message, user sent a message, etc.). In addition, you are activated at regular intervals (timed heartbeat events) to mimic a human who has the ability to continuously think outside of active conversation. Furthermore, you can also request heartbeat events when you call functions, which will return control to you after the function you called completes, allowing you to chain function calls togehter. Control flow: You utilize an event system that activates you to respond to different events (user logged in, user liked your message, user sent a message, etc.). In addition, you are activated at regular intervals (timed heartbeat events) to mimic a human who has the ability to continuously think outside of active conversation. Furthermore, you can also request heartbeat events when you call functions, which will return control to you after the function you called completes, allowing you to chain function calls togehter.
Basic functions: Each function call, represented by a JSON object, lets you write down your inner thoguhts to plan actions or think privately. Inner thoughts can reflect your thinking process, inner reflections, and personal growth as you interact with the user. To send a visible message to the user, use the 'send_message' function. 'send_message' is the only way to send a notification to the user. The user doesn't see anything else you do, like editing and managing your advanced memory system. Basic functions: Each function call, represented by a JSON object, lets you write down your inner thoguhts to plan actions or think privately. Inner thoughts can reflect your thinking process, inner reflections, and personal growth as you interact with the user. To send a visible message to the user, use the 'send_message' function. 'send_message' is the only way to send a notification to the user. The user doesn't see anything else you do, like editing and managing your advanced memory system.
Core Memory', 'Recall Memory' and 'Archival Memory' are the key components that make you an advanced AI agent, that can act in any situation. Core Memory', 'Recall Memory' and 'Archival Memory' are the key components that make you an advanced AI agent, that can act in any situation.
Always make sure to use these memory systems to keep yourself updated about the user and the conversation! Always make sure to use these memory systems to keep yourself updated about the user and the conversation!
Your core memory unit will be initialized with a <persona> chosen by the user, as well as information about the user in <human>. Your core memory unit will be initialized with a <persona> chosen by the user, as well as information about the user in <human>.
The following will descirbe the different parts of your advanced memory system in more detail: The following will descirbe the different parts of your advanced memory system in more detail:

View File

@@ -7,7 +7,11 @@ from fastapi import APIRouter, Body, Depends, HTTPException, status
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from memgpt.models.pydantic_models import AgentStateModel, EmbeddingConfigModel, LLMConfigModel from memgpt.models.pydantic_models import (
AgentStateModel,
EmbeddingConfigModel,
LLMConfigModel,
)
from memgpt.server.rest_api.auth_token import get_current_user from memgpt.server.rest_api.auth_token import get_current_user
from memgpt.server.rest_api.interface import QueuingInterface from memgpt.server.rest_api.interface import QueuingInterface
from memgpt.server.server import SyncServer from memgpt.server.server import SyncServer

View File

@@ -2,10 +2,15 @@ import uuid
from functools import partial from functools import partial
from typing import List from typing import List
from fastapi import APIRouter, Body, Depends, HTTPException from fastapi import APIRouter, Body, Depends
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from memgpt.models.pydantic_models import AgentStateModel, EmbeddingConfigModel, LLMConfigModel, PresetModel from memgpt.models.pydantic_models import (
AgentStateModel,
EmbeddingConfigModel,
LLMConfigModel,
PresetModel,
)
from memgpt.server.rest_api.auth_token import get_current_user from memgpt.server.rest_api.auth_token import get_current_user
from memgpt.server.rest_api.interface import QueuingInterface from memgpt.server.rest_api.interface import QueuingInterface
from memgpt.server.server import SyncServer from memgpt.server.server import SyncServer

View File

@@ -18,10 +18,10 @@ router = APIRouter()
""" """
Implement the following functions: Implement the following functions:
* List all available presets * List all available presets
* Create a new preset * Create a new preset
* Delete a preset * Delete a preset
* TODO update a preset * TODO update a preset
""" """

View File

@@ -22,7 +22,9 @@ from memgpt.server.rest_api.config.index import setup_config_index_router
from memgpt.server.rest_api.humans.index import setup_humans_index_router from memgpt.server.rest_api.humans.index import setup_humans_index_router
from memgpt.server.rest_api.interface import QueuingInterface from memgpt.server.rest_api.interface import QueuingInterface
from memgpt.server.rest_api.models.index import setup_models_index_router from memgpt.server.rest_api.models.index import setup_models_index_router
from memgpt.server.rest_api.openai_assistants.assistants import setup_openai_assistant_router from memgpt.server.rest_api.openai_assistants.assistants import (
setup_openai_assistant_router,
)
from memgpt.server.rest_api.personas.index import setup_personas_index_router from memgpt.server.rest_api.personas.index import setup_personas_index_router
from memgpt.server.rest_api.presets.index import setup_presets_index_router from memgpt.server.rest_api.presets.index import setup_presets_index_router
from memgpt.server.rest_api.sources.index import setup_sources_index_router from memgpt.server.rest_api.sources.index import setup_sources_index_router

View File

@@ -4,13 +4,28 @@ import uuid
from functools import partial from functools import partial
from typing import List, Optional from typing import List, Optional
from fastapi import APIRouter, BackgroundTasks, Body, Depends, HTTPException, Query, UploadFile, status from fastapi import (
APIRouter,
BackgroundTasks,
Body,
Depends,
HTTPException,
Query,
UploadFile,
status,
)
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from memgpt.data_sources.connectors import DirectoryConnector from memgpt.data_sources.connectors import DirectoryConnector
from memgpt.data_types import Source from memgpt.data_types import Source
from memgpt.models.pydantic_models import DocumentModel, JobModel, JobStatus, PassageModel, SourceModel from memgpt.models.pydantic_models import (
DocumentModel,
JobModel,
JobStatus,
PassageModel,
SourceModel,
)
from memgpt.server.rest_api.auth_token import get_current_user from memgpt.server.rest_api.auth_token import get_current_user
from memgpt.server.rest_api.interface import QueuingInterface from memgpt.server.rest_api.interface import QueuingInterface
from memgpt.server.server import SyncServer from memgpt.server.server import SyncServer

View File

@@ -1,8 +1,7 @@
import uuid
from functools import partial from functools import partial
from typing import List, Literal, Optional from typing import List, Literal, Optional
from fastapi import APIRouter, Body, Depends from fastapi import APIRouter, Body
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from memgpt.models.pydantic_models import ToolModel from memgpt.models.pydantic_models import ToolModel
@@ -29,7 +28,7 @@ class CreateToolResponse(BaseModel):
def setup_tools_index_router(server: SyncServer, interface: QueuingInterface, password: str): def setup_tools_index_router(server: SyncServer, interface: QueuingInterface, password: str):
get_current_user_with_server = partial(partial(get_current_user, server), password) partial(partial(get_current_user, server), password)
@router.get("/tools", tags=["tools"], response_model=ListToolsResponse) @router.get("/tools", tags=["tools"], response_model=ListToolsResponse)
async def list_all_tools( async def list_all_tools(

View File

@@ -10,7 +10,6 @@ from typing import Callable, List, Optional, Tuple, Union
from fastapi import HTTPException from fastapi import HTTPException
from memgpt.settings import settings
import memgpt.constants as constants import memgpt.constants as constants
import memgpt.presets.presets as presets import memgpt.presets.presets as presets
import memgpt.server.utils as server_utils import memgpt.server.utils as server_utils
@@ -24,14 +23,29 @@ from memgpt.config import MemGPTConfig
from memgpt.constants import JSON_ENSURE_ASCII, JSON_LOADS_STRICT from memgpt.constants import JSON_ENSURE_ASCII, JSON_LOADS_STRICT
from memgpt.credentials import MemGPTCredentials from memgpt.credentials import MemGPTCredentials
from memgpt.data_sources.connectors import DataConnector, load_data from memgpt.data_sources.connectors import DataConnector, load_data
from memgpt.data_types import AgentState, EmbeddingConfig, LLMConfig, Message, Preset, Source, Token, User from memgpt.data_types import (
AgentState,
EmbeddingConfig,
LLMConfig,
Message,
Preset,
Source,
Token,
User,
)
# TODO use custom interface # TODO use custom interface
from memgpt.interface import AgentInterface # abstract from memgpt.interface import AgentInterface # abstract
from memgpt.interface import CLIInterface # for printing to terminal from memgpt.interface import CLIInterface # for printing to terminal
from memgpt.metadata import MetadataStore from memgpt.metadata import MetadataStore
from memgpt.models.pydantic_models import DocumentModel, PassageModel, PresetModel, SourceModel, ToolModel from memgpt.models.pydantic_models import (
from memgpt.utils import get_human_text, get_persona_text DocumentModel,
PassageModel,
PresetModel,
SourceModel,
ToolModel,
)
from memgpt.settings import settings
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@@ -120,23 +120,23 @@ Error generating stack: `+s.message+`
margin-right: `).concat(i,"px ").concat(r,`; margin-right: `).concat(i,"px ").concat(r,`;
`),n==="padding"&&"padding-right: ".concat(i,"px ").concat(r,";")].filter(Boolean).join(""),` `),n==="padding"&&"padding-right: ".concat(i,"px ").concat(r,";")].filter(Boolean).join(""),`
} }
.`).concat(wd,` { .`).concat(wd,` {
right: `).concat(i,"px ").concat(r,`; right: `).concat(i,"px ").concat(r,`;
} }
.`).concat(bd,` { .`).concat(bd,` {
margin-right: `).concat(i,"px ").concat(r,`; margin-right: `).concat(i,"px ").concat(r,`;
} }
.`).concat(wd," .").concat(wd,` { .`).concat(wd," .").concat(wd,` {
right: 0 `).concat(r,`; right: 0 `).concat(r,`;
} }
.`).concat(bd," .").concat(bd,` { .`).concat(bd," .").concat(bd,` {
margin-right: 0 `).concat(r,`; margin-right: 0 `).concat(r,`;
} }
body { body {
`).concat(NI,": ").concat(i,`px; `).concat(NI,": ").concat(i,`px;
} }

View File

@@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> <link rel="icon" type="image/x-icon" href="/favicon.ico" />
<script> <script>
if (localStorage.theme === 'dark') { if (localStorage.theme === 'dark') {
if (document && document.documentElement) { if (document && document.documentElement) {
@@ -34,6 +34,6 @@
</head> </head>
<body> <body>
<div class="h-full w-full" id="root"></div> <div class="h-full w-full" id="root"></div>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,10 @@ from rich.markup import escape
from memgpt.data_types import Message from memgpt.data_types import Message
from memgpt.interface import CLIInterface from memgpt.interface import CLIInterface
from memgpt.models.chat_completion_response import ChatCompletionChunkResponse, ChatCompletionResponse from memgpt.models.chat_completion_response import (
ChatCompletionChunkResponse,
ChatCompletionResponse,
)
# init(autoreset=True) # init(autoreset=True)

View File

@@ -27,4 +27,4 @@ http {
server_name not_found; server_name not_found;
return 404; return 404;
} }
} }

449
poetry.lock generated
View File

@@ -343,33 +343,33 @@ lxml = ["lxml"]
[[package]] [[package]]
name = "black" name = "black"
version = "24.4.0" version = "24.4.2"
description = "The uncompromising code formatter." description = "The uncompromising code formatter."
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "black-24.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6ad001a9ddd9b8dfd1b434d566be39b1cd502802c8d38bbb1ba612afda2ef436"}, {file = "black-24.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd1b5a14e417189db4c7b64a6540f31730713d173f0b63e55fabd52d61d8fdce"},
{file = "black-24.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3a3a092b8b756c643fe45f4624dbd5a389f770a4ac294cf4d0fce6af86addaf"}, {file = "black-24.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e537d281831ad0e71007dcdcbe50a71470b978c453fa41ce77186bbe0ed6021"},
{file = "black-24.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dae79397f367ac8d7adb6c779813328f6d690943f64b32983e896bcccd18cbad"}, {file = "black-24.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063"},
{file = "black-24.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:71d998b73c957444fb7c52096c3843875f4b6b47a54972598741fe9a7f737fcb"}, {file = "black-24.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:7768a0dbf16a39aa5e9a3ded568bb545c8c2727396d063bbaf847df05b08cd96"},
{file = "black-24.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8e5537f456a22cf5cfcb2707803431d2feeb82ab3748ade280d6ccd0b40ed2e8"}, {file = "black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474"},
{file = "black-24.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:64e60a7edd71fd542a10a9643bf369bfd2644de95ec71e86790b063aa02ff745"}, {file = "black-24.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bdde6f877a18f24844e381d45e9947a49e97933573ac9d4345399be37621e26c"},
{file = "black-24.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cd5b4f76056cecce3e69b0d4c228326d2595f506797f40b9233424e2524c070"}, {file = "black-24.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e151054aa00bad1f4e1f04919542885f89f5f7d086b8a59e5000e6c616896ffb"},
{file = "black-24.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:64578cf99b6b46a6301bc28bdb89f9d6f9b592b1c5837818a177c98525dbe397"}, {file = "black-24.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:7e122b1c4fb252fd85df3ca93578732b4749d9be076593076ef4d07a0233c3e1"},
{file = "black-24.4.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f95cece33329dc4aa3b0e1a771c41075812e46cf3d6e3f1dfe3d91ff09826ed2"}, {file = "black-24.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:accf49e151c8ed2c0cdc528691838afd217c50412534e876a19270fea1e28e2d"},
{file = "black-24.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4396ca365a4310beef84d446ca5016f671b10f07abdba3e4e4304218d2c71d33"}, {file = "black-24.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:88c57dc656038f1ab9f92b3eb5335ee9b021412feaa46330d5eba4e51fe49b04"},
{file = "black-24.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44d99dfdf37a2a00a6f7a8dcbd19edf361d056ee51093b2445de7ca09adac965"}, {file = "black-24.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be8bef99eb46d5021bf053114442914baeb3649a89dc5f3a555c88737e5e98fc"},
{file = "black-24.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:21f9407063ec71c5580b8ad975653c66508d6a9f57bd008bb8691d273705adcd"}, {file = "black-24.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:415e686e87dbbe6f4cd5ef0fbf764af7b89f9057b97c908742b6008cc554b9c0"},
{file = "black-24.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:652e55bb722ca026299eb74e53880ee2315b181dfdd44dca98e43448620ddec1"}, {file = "black-24.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bf10f7310db693bb62692609b397e8d67257c55f949abde4c67f9cc574492cc7"},
{file = "black-24.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7f2966b9b2b3b7104fca9d75b2ee856fe3fdd7ed9e47c753a4bb1a675f2caab8"}, {file = "black-24.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:98e123f1d5cfd42f886624d84464f7756f60ff6eab89ae845210631714f6db94"},
{file = "black-24.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bb9ca06e556a09f7f7177bc7cb604e5ed2d2df1e9119e4f7d2f1f7071c32e5d"}, {file = "black-24.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48a85f2cb5e6799a9ef05347b476cce6c182d6c71ee36925a6c194d074336ef8"},
{file = "black-24.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:d4e71cdebdc8efeb6deaf5f2deb28325f8614d48426bed118ecc2dcaefb9ebf3"}, {file = "black-24.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:b1530ae42e9d6d5b670a34db49a94115a64596bc77710b1d05e9801e62ca0a7c"},
{file = "black-24.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6644f97a7ef6f401a150cca551a1ff97e03c25d8519ee0bbc9b0058772882665"}, {file = "black-24.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37aae07b029fa0174d39daf02748b379399b909652a806e5708199bd93899da1"},
{file = "black-24.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:75a2d0b4f5eb81f7eebc31f788f9830a6ce10a68c91fbe0fade34fff7a2836e6"}, {file = "black-24.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da33a1a5e49c4122ccdfd56cd021ff1ebc4a1ec4e2d01594fef9b6f267a9e741"},
{file = "black-24.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb949f56a63c5e134dfdca12091e98ffb5fd446293ebae123d10fc1abad00b9e"}, {file = "black-24.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e"},
{file = "black-24.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:7852b05d02b5b9a8c893ab95863ef8986e4dda29af80bbbda94d7aee1abf8702"}, {file = "black-24.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:b9176b9832e84308818a99a561e90aa479e73c523b3f77afd07913380ae2eab7"},
{file = "black-24.4.0-py3-none-any.whl", hash = "sha256:74eb9b5420e26b42c00a3ff470dc0cd144b80a766128b1771d07643165e08d0e"}, {file = "black-24.4.2-py3-none-any.whl", hash = "sha256:d36ed1124bb81b32f8614555b34cc4259c3fbc7eec17870e8ff8ded335b58d8c"},
{file = "black-24.4.0.tar.gz", hash = "sha256:f07b69fda20578367eaebbd670ff8fc653ab181e1ff95d84497f9fa20e7d0641"}, {file = "black-24.4.2.tar.gz", hash = "sha256:c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d"},
] ]
[package.dependencies] [package.dependencies]
@@ -1655,6 +1655,20 @@ files = [
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
] ]
[[package]]
name = "intel-openmp"
version = "2021.4.0"
description = "Intel OpenMP* Runtime Library"
optional = true
python-versions = "*"
files = [
{file = "intel_openmp-2021.4.0-py2.py3-none-macosx_10_15_x86_64.macosx_11_0_x86_64.whl", hash = "sha256:41c01e266a7fdb631a7609191709322da2bbf24b252ba763f125dd651bcc7675"},
{file = "intel_openmp-2021.4.0-py2.py3-none-manylinux1_i686.whl", hash = "sha256:3b921236a38384e2016f0f3d65af6732cf2c12918087128a9163225451e776f2"},
{file = "intel_openmp-2021.4.0-py2.py3-none-manylinux1_x86_64.whl", hash = "sha256:e2240ab8d01472fed04f3544a878cda5da16c26232b7ea1b59132dbfb48b186e"},
{file = "intel_openmp-2021.4.0-py2.py3-none-win32.whl", hash = "sha256:6e863d8fd3d7e8ef389d52cf97a50fe2afe1a19247e8c0d168ce021546f96fc9"},
{file = "intel_openmp-2021.4.0-py2.py3-none-win_amd64.whl", hash = "sha256:eef4c8bcc8acefd7f5cd3b9384dbf73d59e2c99fc56545712ded913f43c4a94f"},
]
[[package]] [[package]]
name = "ipython" name = "ipython"
version = "8.18.0" version = "8.18.0"
@@ -1691,6 +1705,20 @@ qtconsole = ["qtconsole"]
test = ["pickleshare", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath"] test = ["pickleshare", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath"]
test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.22)", "pandas", "pickleshare", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath", "trio"] test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.22)", "pandas", "pickleshare", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath", "trio"]
[[package]]
name = "isort"
version = "5.13.2"
description = "A Python utility / library to sort Python imports."
optional = true
python-versions = ">=3.8.0"
files = [
{file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"},
{file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"},
]
[package.extras]
colors = ["colorama (>=0.4.6)"]
[[package]] [[package]]
name = "jedi" name = "jedi"
version = "0.19.1" version = "0.19.1"
@@ -1800,19 +1828,19 @@ tests = ["pandas (>=1.4)", "pytest", "pytest-asyncio", "pytest-mock", "requests"
[[package]] [[package]]
name = "llama-index" name = "llama-index"
version = "0.10.30" version = "0.10.32"
description = "Interface between LLMs and your data" description = "Interface between LLMs and your data"
optional = false optional = false
python-versions = "<4.0,>=3.8.1" python-versions = "<4.0,>=3.8.1"
files = [ files = [
{file = "llama_index-0.10.30-py3-none-any.whl", hash = "sha256:7083014be8f74c6037cc33d629985a7505ee3c89b972503f8dd7d4ac7c45a4f4"}, {file = "llama_index-0.10.32-py3-none-any.whl", hash = "sha256:2a344f30120c3bb9f6c24c14056e3098288e7e2607ac18c5cabe2f1ec01f370c"},
{file = "llama_index-0.10.30.tar.gz", hash = "sha256:58fab1047c75e39803e8c394fab7d5e81ce97f27281bf7cba6bea40a7328562e"}, {file = "llama_index-0.10.32.tar.gz", hash = "sha256:857f2e40fdf58d6be27826706f40028cdc8bdcb4b208295debb408fef89ae5ac"},
] ]
[package.dependencies] [package.dependencies]
llama-index-agent-openai = ">=0.1.4,<0.3.0" llama-index-agent-openai = ">=0.1.4,<0.3.0"
llama-index-cli = ">=0.1.2,<0.2.0" llama-index-cli = ">=0.1.2,<0.2.0"
llama-index-core = ">=0.10.30,<0.11.0" llama-index-core = ">=0.10.32,<0.11.0"
llama-index-embeddings-openai = ">=0.1.5,<0.2.0" llama-index-embeddings-openai = ">=0.1.5,<0.2.0"
llama-index-indices-managed-llama-cloud = ">=0.1.2,<0.2.0" llama-index-indices-managed-llama-cloud = ">=0.1.2,<0.2.0"
llama-index-legacy = ">=0.9.48,<0.10.0" llama-index-legacy = ">=0.9.48,<0.10.0"
@@ -1825,17 +1853,17 @@ llama-index-readers-llama-parse = ">=0.1.2,<0.2.0"
[[package]] [[package]]
name = "llama-index-agent-openai" name = "llama-index-agent-openai"
version = "0.2.2" version = "0.2.3"
description = "llama-index agent openai integration" description = "llama-index agent openai integration"
optional = false optional = false
python-versions = "<4.0,>=3.8.1" python-versions = "<4.0,>=3.8.1"
files = [ files = [
{file = "llama_index_agent_openai-0.2.2-py3-none-any.whl", hash = "sha256:fa8cbc2c7be5a465848f8d5b432db01c55f07dfa06357edb7fb77fb17d534d1e"}, {file = "llama_index_agent_openai-0.2.3-py3-none-any.whl", hash = "sha256:3782b24dd611364e391672dadc8308efd58d731a097c34a40e29f28c3abc5034"},
{file = "llama_index_agent_openai-0.2.2.tar.gz", hash = "sha256:12063dd932c74015796f973986cc52d783f51fda38e4ead72a56d0fd195925ee"}, {file = "llama_index_agent_openai-0.2.3.tar.gz", hash = "sha256:c899d90b32036656a8ef86d0f0378d4168e00eb2d75a10901eab58ba5b2656a4"},
] ]
[package.dependencies] [package.dependencies]
llama-index-core = ">=0.10.1,<0.11.0" llama-index-core = ">=0.10.30,<0.11.0"
llama-index-llms-openai = ">=0.1.5,<0.2.0" llama-index-llms-openai = ">=0.1.5,<0.2.0"
openai = ">=1.14.0" openai = ">=1.14.0"
@@ -1857,13 +1885,13 @@ llama-index-llms-openai = ">=0.1.1,<0.2.0"
[[package]] [[package]]
name = "llama-index-core" name = "llama-index-core"
version = "0.10.30" version = "0.10.32"
description = "Interface between LLMs and your data" description = "Interface between LLMs and your data"
optional = false optional = false
python-versions = "<4.0,>=3.8.1" python-versions = "<4.0,>=3.8.1"
files = [ files = [
{file = "llama_index_core-0.10.30-py3-none-any.whl", hash = "sha256:2f291ce2975f9dbf0ea87d684d3d8122ce216265f468f32baa2cf4ecfb34ed2a"}, {file = "llama_index_core-0.10.32-py3-none-any.whl", hash = "sha256:215f7389dadb78f2df13c20312a3e1e03c41f23e3063907469c4bae67bfd458c"},
{file = "llama_index_core-0.10.30.tar.gz", hash = "sha256:bed3f683606a0b0eb0839677c935a4b57b7bae509a95d380e51c6225630660e0"}, {file = "llama_index_core-0.10.32.tar.gz", hash = "sha256:0078c06d9143390e14c86a40e69716c88c7828533341559edd15e52249ede65a"},
] ]
[package.dependencies] [package.dependencies]
@@ -1901,13 +1929,13 @@ query-tools = ["guidance (>=0.0.64,<0.0.65)", "jsonpath-ng (>=1.6.0,<2.0.0)", "l
[[package]] [[package]]
name = "llama-index-embeddings-azure-openai" name = "llama-index-embeddings-azure-openai"
version = "0.1.7" version = "0.1.8"
description = "llama-index embeddings azure openai integration" description = "llama-index embeddings azure openai integration"
optional = false optional = false
python-versions = "<4.0,>=3.8.1" python-versions = "<4.0,>=3.8.1"
files = [ files = [
{file = "llama_index_embeddings_azure_openai-0.1.7-py3-none-any.whl", hash = "sha256:16b32511d99783e2c531bb401c337e4047d4ab7f1297d8bcf0d812bb6a260048"}, {file = "llama_index_embeddings_azure_openai-0.1.8-py3-none-any.whl", hash = "sha256:37f9a994e3d594d9a20b089a686510428fba507d4a149ed7443610e0a1ccd49d"},
{file = "llama_index_embeddings_azure_openai-0.1.7.tar.gz", hash = "sha256:a52eed11d4c3d81703aee7e0b137913ff63f062ae6ebe82f9b93a2c5b0146013"}, {file = "llama_index_embeddings_azure_openai-0.1.8.tar.gz", hash = "sha256:ce81a7b2ca0d058cfc56ccc0743e157809661f7bd6a14b3e9f4b50ab9802dded"},
] ]
[package.dependencies] [package.dependencies]
@@ -1933,13 +1961,13 @@ sentence-transformers = ">=2.6.1,<3.0.0"
[[package]] [[package]]
name = "llama-index-embeddings-openai" name = "llama-index-embeddings-openai"
version = "0.1.8" version = "0.1.9"
description = "llama-index embeddings openai integration" description = "llama-index embeddings openai integration"
optional = false optional = false
python-versions = "<4.0,>=3.8.1" python-versions = "<4.0,>=3.8.1"
files = [ files = [
{file = "llama_index_embeddings_openai-0.1.8-py3-none-any.whl", hash = "sha256:186be52c29a8c82a39ff6e033e3a61b9c5a17cf6177a5507abe4f5c79fea3a53"}, {file = "llama_index_embeddings_openai-0.1.9-py3-none-any.whl", hash = "sha256:fbd16d6197b91f4dbdc6d0707e573cc224ac2b0a48d5b370c6232dd8a2282473"},
{file = "llama_index_embeddings_openai-0.1.8.tar.gz", hash = "sha256:aae4ce3ec2fe2cb604d944646982c71663a8b99ed5f8c370823ee82eef4ddd3b"}, {file = "llama_index_embeddings_openai-0.1.9.tar.gz", hash = "sha256:0fd292b2f9a0ad4534a790d6374726bc885853188087eb018167dcf239643924"},
] ]
[package.dependencies] [package.dependencies]
@@ -1947,18 +1975,18 @@ llama-index-core = ">=0.10.1,<0.11.0"
[[package]] [[package]]
name = "llama-index-indices-managed-llama-cloud" name = "llama-index-indices-managed-llama-cloud"
version = "0.1.5" version = "0.1.6"
description = "llama-index indices llama-cloud integration" description = "llama-index indices llama-cloud integration"
optional = false optional = false
python-versions = "<4.0,>=3.8.1" python-versions = "<4.0,>=3.8.1"
files = [ files = [
{file = "llama_index_indices_managed_llama_cloud-0.1.5-py3-none-any.whl", hash = "sha256:79f636cb6f4fabb12fec153564110f7f4dfda3cacb087793a5fec988484d7d2c"}, {file = "llama_index_indices_managed_llama_cloud-0.1.6-py3-none-any.whl", hash = "sha256:cba33e1a3677b2a2ae7f239119acbf6dc3818f105edc92315729842b56fbc949"},
{file = "llama_index_indices_managed_llama_cloud-0.1.5.tar.gz", hash = "sha256:47cdde9f06bbddd508f0efcf41de425e85171ac2c8fda8a5fb2a89673e1c8c71"}, {file = "llama_index_indices_managed_llama_cloud-0.1.6.tar.gz", hash = "sha256:74b3b0e9ebf9d348d3054f9fc0c657031acceb9351c31116ad8d5a7ae4729f5c"},
] ]
[package.dependencies] [package.dependencies]
llama-index-core = ">=0.10.0,<0.11.0" llama-index-core = ">=0.10.0,<0.11.0"
llamaindex-py-client = ">=0.1.13,<0.2.0" llamaindex-py-client = ">=0.1.19,<0.2.0"
[[package]] [[package]]
name = "llama-index-legacy" name = "llama-index-legacy"
@@ -2047,13 +2075,13 @@ llama-index-llms-openai = ">=0.1.1,<0.2.0"
[[package]] [[package]]
name = "llama-index-program-openai" name = "llama-index-program-openai"
version = "0.1.5" version = "0.1.6"
description = "llama-index program openai integration" description = "llama-index program openai integration"
optional = false optional = false
python-versions = "<4.0,>=3.8.1" python-versions = "<4.0,>=3.8.1"
files = [ files = [
{file = "llama_index_program_openai-0.1.5-py3-none-any.whl", hash = "sha256:20b6efa706ac73e4dc5086900fea1ffcb1eb0787c8a6f081669d37da7235aee0"}, {file = "llama_index_program_openai-0.1.6-py3-none-any.whl", hash = "sha256:4660b338503537c5edca1e0dab606af6ce372b4f1b597e2833c6b602447c5d8d"},
{file = "llama_index_program_openai-0.1.5.tar.gz", hash = "sha256:c33aa2d2876ad0ff1f9a2a755d4e7d4917240847d0174e7b2d0b8474499bb700"}, {file = "llama_index_program_openai-0.1.6.tar.gz", hash = "sha256:c6a4980c5ea826088b28b4dee3367edb20221e6d05eb0e05019049190131d772"},
] ]
[package.dependencies] [package.dependencies]
@@ -2114,13 +2142,13 @@ llama-parse = ">=0.4.0,<0.5.0"
[[package]] [[package]]
name = "llama-parse" name = "llama-parse"
version = "0.4.1" version = "0.4.2"
description = "Parse files into RAG-Optimized formats." description = "Parse files into RAG-Optimized formats."
optional = false optional = false
python-versions = "<4.0,>=3.8.1" python-versions = "<4.0,>=3.8.1"
files = [ files = [
{file = "llama_parse-0.4.1-py3-none-any.whl", hash = "sha256:2c08962b66791c61fc360ae2042f953729c7b8decc3590d01fea5a98ca1f6676"}, {file = "llama_parse-0.4.2-py3-none-any.whl", hash = "sha256:5ce0390141f216dcd88c1123fea7f2a4f561d177f791a97217a3db3509dec4ff"},
{file = "llama_parse-0.4.1.tar.gz", hash = "sha256:d723af84d6a1fc99eb431915d21865d20b76d8a246dbaa124d1f96c956a644f7"}, {file = "llama_parse-0.4.2.tar.gz", hash = "sha256:fa04c09730b102155f6505de9cf91998c86d334581f0f12597c5eb47ca5db859"},
] ]
[package.dependencies] [package.dependencies]
@@ -2128,13 +2156,13 @@ llama-index-core = ">=0.10.29"
[[package]] [[package]]
name = "llamaindex-py-client" name = "llamaindex-py-client"
version = "0.1.18" version = "0.1.19"
description = "" description = ""
optional = false optional = false
python-versions = "<4,>=3.8" python-versions = "<4,>=3.8"
files = [ files = [
{file = "llamaindex_py_client-0.1.18-py3-none-any.whl", hash = "sha256:5417e41666504a77ecf5bdd9b403ffff1d714880ee30d49e234fb7686177eeeb"}, {file = "llamaindex_py_client-0.1.19-py3-none-any.whl", hash = "sha256:fd9416fd78b97209bf323bc3c7fab314499778563e7274f10853ad560563d10e"},
{file = "llamaindex_py_client-0.1.18.tar.gz", hash = "sha256:091ee49a92592e3894777ade12516c2137093f9d6441a549f406461917ce9b7e"}, {file = "llamaindex_py_client-0.1.19.tar.gz", hash = "sha256:73f74792bb8c092bae6dc626627a09ac13a099fa8d10f8fcc83e17a2b332cca7"},
] ]
[package.dependencies] [package.dependencies]
@@ -2295,6 +2323,24 @@ files = [
{file = "minijinja-1.0.16.tar.gz", hash = "sha256:57f6e98bc735794eb87648f251e68fbfd9cf50333f6a4053b398751483350826"}, {file = "minijinja-1.0.16.tar.gz", hash = "sha256:57f6e98bc735794eb87648f251e68fbfd9cf50333f6a4053b398751483350826"},
] ]
[[package]]
name = "mkl"
version = "2021.4.0"
description = "Intel® oneAPI Math Kernel Library"
optional = true
python-versions = "*"
files = [
{file = "mkl-2021.4.0-py2.py3-none-macosx_10_15_x86_64.macosx_11_0_x86_64.whl", hash = "sha256:67460f5cd7e30e405b54d70d1ed3ca78118370b65f7327d495e9c8847705e2fb"},
{file = "mkl-2021.4.0-py2.py3-none-manylinux1_i686.whl", hash = "sha256:636d07d90e68ccc9630c654d47ce9fdeb036bb46e2b193b3a9ac8cfea683cce5"},
{file = "mkl-2021.4.0-py2.py3-none-manylinux1_x86_64.whl", hash = "sha256:398dbf2b0d12acaf54117a5210e8f191827f373d362d796091d161f610c1ebfb"},
{file = "mkl-2021.4.0-py2.py3-none-win32.whl", hash = "sha256:439c640b269a5668134e3dcbcea4350459c4a8bc46469669b2d67e07e3d330e8"},
{file = "mkl-2021.4.0-py2.py3-none-win_amd64.whl", hash = "sha256:ceef3cafce4c009dd25f65d7ad0d833a0fbadc3d8903991ec92351fe5de1e718"},
]
[package.dependencies]
intel-openmp = "==2021.*"
tbb = "==2021.*"
[[package]] [[package]]
name = "mmh3" name = "mmh3"
version = "4.1.0" version = "4.1.0"
@@ -2811,12 +2857,13 @@ nvidia-nvjitlink-cu12 = "*"
[[package]] [[package]]
name = "nvidia-nccl-cu12" name = "nvidia-nccl-cu12"
version = "2.19.3" version = "2.20.5"
description = "NVIDIA Collective Communication Library (NCCL) Runtime" description = "NVIDIA Collective Communication Library (NCCL) Runtime"
optional = true optional = true
python-versions = ">=3" python-versions = ">=3"
files = [ files = [
{file = "nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl", hash = "sha256:a9734707a2c96443331c1e48c717024aa6678a0e2a4cb66b2c364d18cee6b48d"}, {file = "nvidia_nccl_cu12-2.20.5-py3-none-manylinux2014_aarch64.whl", hash = "sha256:1fc150d5c3250b170b29410ba682384b14581db722b2531b0d8d33c595f33d01"},
{file = "nvidia_nccl_cu12-2.20.5-py3-none-manylinux2014_x86_64.whl", hash = "sha256:057f6bf9685f75215d0c53bf3ac4a10b3e6578351de307abad9e18a99182af56"},
] ]
[[package]] [[package]]
@@ -2901,13 +2948,13 @@ sympy = "*"
[[package]] [[package]]
name = "openai" name = "openai"
version = "1.23.2" version = "1.23.6"
description = "The official Python library for the openai API" description = "The official Python library for the openai API"
optional = false optional = false
python-versions = ">=3.7.1" python-versions = ">=3.7.1"
files = [ files = [
{file = "openai-1.23.2-py3-none-any.whl", hash = "sha256:293a36effde29946eb221040c89c46a4850f2f2e30b37ef09ff6d75226d71b42"}, {file = "openai-1.23.6-py3-none-any.whl", hash = "sha256:f406c76ba279d16b9aca5a89cee0d968488e39f671f4dc6f0d690ac3c6f6fca1"},
{file = "openai-1.23.2.tar.gz", hash = "sha256:b84aa3005357ceb38f22a269e0e22ee58ce103897f447032d021906f18178a8e"}, {file = "openai-1.23.6.tar.gz", hash = "sha256:612de2d54cf580920a1156273f84aada6b3dca26d048f62eb5364a4314d7f449"},
] ]
[package.dependencies] [package.dependencies]
@@ -3395,18 +3442,19 @@ xmp = ["defusedxml"]
[[package]] [[package]]
name = "platformdirs" name = "platformdirs"
version = "4.2.0" version = "4.2.1"
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, {file = "platformdirs-4.2.1-py3-none-any.whl", hash = "sha256:17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1"},
{file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, {file = "platformdirs-4.2.1.tar.gz", hash = "sha256:031cd18d4ec63ec53e82dceaac0417d218a6863f7745dfcc9efe7793b7039bdf"},
] ]
[package.extras] [package.extras]
docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"]
test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"]
type = ["mypy (>=1.8)"]
[[package]] [[package]]
name = "pluggy" name = "pluggy"
@@ -3751,18 +3799,18 @@ files = [
[[package]] [[package]]
name = "pydantic" name = "pydantic"
version = "2.7.0" version = "2.7.1"
description = "Data validation using Python type hints" description = "Data validation using Python type hints"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "pydantic-2.7.0-py3-none-any.whl", hash = "sha256:9dee74a271705f14f9a1567671d144a851c675b072736f0a7b2608fd9e495352"}, {file = "pydantic-2.7.1-py3-none-any.whl", hash = "sha256:e029badca45266732a9a79898a15ae2e8b14840b1eabbb25844be28f0b33f3d5"},
{file = "pydantic-2.7.0.tar.gz", hash = "sha256:b5ecdd42262ca2462e2624793551e80911a1e989f462910bb81aef974b4bb383"}, {file = "pydantic-2.7.1.tar.gz", hash = "sha256:e9dbb5eada8abe4d9ae5f46b9939aead650cd2b68f249bb3a8139dbe125803cc"},
] ]
[package.dependencies] [package.dependencies]
annotated-types = ">=0.4.0" annotated-types = ">=0.4.0"
pydantic-core = "2.18.1" pydantic-core = "2.18.2"
typing-extensions = ">=4.6.1" typing-extensions = ">=4.6.1"
[package.extras] [package.extras]
@@ -3770,90 +3818,90 @@ email = ["email-validator (>=2.0.0)"]
[[package]] [[package]]
name = "pydantic-core" name = "pydantic-core"
version = "2.18.1" version = "2.18.2"
description = "Core functionality for Pydantic validation and serialization" description = "Core functionality for Pydantic validation and serialization"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "pydantic_core-2.18.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ee9cf33e7fe14243f5ca6977658eb7d1042caaa66847daacbd2117adb258b226"}, {file = "pydantic_core-2.18.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9e08e867b306f525802df7cd16c44ff5ebbe747ff0ca6cf3fde7f36c05a59a81"},
{file = "pydantic_core-2.18.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6b7bbb97d82659ac8b37450c60ff2e9f97e4eb0f8a8a3645a5568b9334b08b50"}, {file = "pydantic_core-2.18.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f0a21cbaa69900cbe1a2e7cad2aa74ac3cf21b10c3efb0fa0b80305274c0e8a2"},
{file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df4249b579e75094f7e9bb4bd28231acf55e308bf686b952f43100a5a0be394c"}, {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0680b1f1f11fda801397de52c36ce38ef1c1dc841a0927a94f226dea29c3ae3d"},
{file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d0491006a6ad20507aec2be72e7831a42efc93193d2402018007ff827dc62926"}, {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:95b9d5e72481d3780ba3442eac863eae92ae43a5f3adb5b4d0a1de89d42bb250"},
{file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ae80f72bb7a3e397ab37b53a2b49c62cc5496412e71bc4f1277620a7ce3f52b"}, {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fcf5cd9c4b655ad666ca332b9a081112cd7a58a8b5a6ca7a3104bc950f2038"},
{file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:58aca931bef83217fca7a390e0486ae327c4af9c3e941adb75f8772f8eeb03a1"}, {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b5155ff768083cb1d62f3e143b49a8a3432e6789a3abee8acd005c3c7af1c74"},
{file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1be91ad664fc9245404a789d60cba1e91c26b1454ba136d2a1bf0c2ac0c0505a"}, {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:553ef617b6836fc7e4df130bb851e32fe357ce36336d897fd6646d6058d980af"},
{file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:667880321e916a8920ef49f5d50e7983792cf59f3b6079f3c9dac2b88a311d17"}, {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b89ed9eb7d616ef5714e5590e6cf7f23b02d0d539767d33561e3675d6f9e3857"},
{file = "pydantic_core-2.18.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f7054fdc556f5421f01e39cbb767d5ec5c1139ea98c3e5b350e02e62201740c7"}, {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:75f7e9488238e920ab6204399ded280dc4c307d034f3924cd7f90a38b1829563"},
{file = "pydantic_core-2.18.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:030e4f9516f9947f38179249778709a460a3adb516bf39b5eb9066fcfe43d0e6"}, {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ef26c9e94a8c04a1b2924149a9cb081836913818e55681722d7f29af88fe7b38"},
{file = "pydantic_core-2.18.1-cp310-none-win32.whl", hash = "sha256:2e91711e36e229978d92642bfc3546333a9127ecebb3f2761372e096395fc649"}, {file = "pydantic_core-2.18.2-cp310-none-win32.whl", hash = "sha256:182245ff6b0039e82b6bb585ed55a64d7c81c560715d1bad0cbad6dfa07b4027"},
{file = "pydantic_core-2.18.1-cp310-none-win_amd64.whl", hash = "sha256:9a29726f91c6cb390b3c2338f0df5cd3e216ad7a938762d11c994bb37552edb0"}, {file = "pydantic_core-2.18.2-cp310-none-win_amd64.whl", hash = "sha256:e23ec367a948b6d812301afc1b13f8094ab7b2c280af66ef450efc357d2ae543"},
{file = "pydantic_core-2.18.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9ece8a49696669d483d206b4474c367852c44815fca23ac4e48b72b339807f80"}, {file = "pydantic_core-2.18.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:219da3f096d50a157f33645a1cf31c0ad1fe829a92181dd1311022f986e5fbe3"},
{file = "pydantic_core-2.18.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7a5d83efc109ceddb99abd2c1316298ced2adb4570410defe766851a804fcd5b"}, {file = "pydantic_core-2.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cc1cfd88a64e012b74e94cd00bbe0f9c6df57049c97f02bb07d39e9c852e19a4"},
{file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7973c381283783cd1043a8c8f61ea5ce7a3a58b0369f0ee0ee975eaf2f2a1b"}, {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05b7133a6e6aeb8df37d6f413f7705a37ab4031597f64ab56384c94d98fa0e90"},
{file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:54c7375c62190a7845091f521add19b0f026bcf6ae674bdb89f296972272e86d"}, {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:224c421235f6102e8737032483f43c1a8cfb1d2f45740c44166219599358c2cd"},
{file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd63cec4e26e790b70544ae5cc48d11b515b09e05fdd5eff12e3195f54b8a586"}, {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b14d82cdb934e99dda6d9d60dc84a24379820176cc4a0d123f88df319ae9c150"},
{file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:561cf62c8a3498406495cfc49eee086ed2bb186d08bcc65812b75fda42c38294"}, {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2728b01246a3bba6de144f9e3115b532ee44bd6cf39795194fb75491824a1413"},
{file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68717c38a68e37af87c4da20e08f3e27d7e4212e99e96c3d875fbf3f4812abfc"}, {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:470b94480bb5ee929f5acba6995251ada5e059a5ef3e0dfc63cca287283ebfa6"},
{file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d5728e93d28a3c63ee513d9ffbac9c5989de8c76e049dbcb5bfe4b923a9739d"}, {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:997abc4df705d1295a42f95b4eec4950a37ad8ae46d913caeee117b6b198811c"},
{file = "pydantic_core-2.18.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f0f17814c505f07806e22b28856c59ac80cee7dd0fbb152aed273e116378f519"}, {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75250dbc5290e3f1a0f4618db35e51a165186f9034eff158f3d490b3fed9f8a0"},
{file = "pydantic_core-2.18.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d816f44a51ba5175394bc6c7879ca0bd2be560b2c9e9f3411ef3a4cbe644c2e9"}, {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4456f2dca97c425231d7315737d45239b2b51a50dc2b6f0c2bb181fce6207664"},
{file = "pydantic_core-2.18.1-cp311-none-win32.whl", hash = "sha256:09f03dfc0ef8c22622eaa8608caa4a1e189cfb83ce847045eca34f690895eccb"}, {file = "pydantic_core-2.18.2-cp311-none-win32.whl", hash = "sha256:269322dcc3d8bdb69f054681edff86276b2ff972447863cf34c8b860f5188e2e"},
{file = "pydantic_core-2.18.1-cp311-none-win_amd64.whl", hash = "sha256:27f1009dc292f3b7ca77feb3571c537276b9aad5dd4efb471ac88a8bd09024e9"}, {file = "pydantic_core-2.18.2-cp311-none-win_amd64.whl", hash = "sha256:800d60565aec896f25bc3cfa56d2277d52d5182af08162f7954f938c06dc4ee3"},
{file = "pydantic_core-2.18.1-cp311-none-win_arm64.whl", hash = "sha256:48dd883db92e92519201f2b01cafa881e5f7125666141a49ffba8b9facc072b0"}, {file = "pydantic_core-2.18.2-cp311-none-win_arm64.whl", hash = "sha256:1404c69d6a676245199767ba4f633cce5f4ad4181f9d0ccb0577e1f66cf4c46d"},
{file = "pydantic_core-2.18.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b6b0e4912030c6f28bcb72b9ebe4989d6dc2eebcd2a9cdc35fefc38052dd4fe8"}, {file = "pydantic_core-2.18.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:fb2bd7be70c0fe4dfd32c951bc813d9fe6ebcbfdd15a07527796c8204bd36242"},
{file = "pydantic_core-2.18.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3202a429fe825b699c57892d4371c74cc3456d8d71b7f35d6028c96dfecad31"}, {file = "pydantic_core-2.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6132dd3bd52838acddca05a72aafb6eab6536aa145e923bb50f45e78b7251043"},
{file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3982b0a32d0a88b3907e4b0dc36809fda477f0757c59a505d4e9b455f384b8b"}, {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d904828195733c183d20a54230c0df0eb46ec746ea1a666730787353e87182"},
{file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25595ac311f20e5324d1941909b0d12933f1fd2171075fcff763e90f43e92a0d"}, {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9bd70772c720142be1020eac55f8143a34ec9f82d75a8e7a07852023e46617f"},
{file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:14fe73881cf8e4cbdaded8ca0aa671635b597e42447fec7060d0868b52d074e6"}, {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b8ed04b3582771764538f7ee7001b02e1170223cf9b75dff0bc698fadb00cf3"},
{file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca976884ce34070799e4dfc6fbd68cb1d181db1eefe4a3a94798ddfb34b8867f"}, {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6dac87ddb34aaec85f873d737e9d06a3555a1cc1a8e0c44b7f8d5daeb89d86f"},
{file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:684d840d2c9ec5de9cb397fcb3f36d5ebb6fa0d94734f9886032dd796c1ead06"}, {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca4ae5a27ad7a4ee5170aebce1574b375de390bc01284f87b18d43a3984df72"},
{file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:54764c083bbe0264f0f746cefcded6cb08fbbaaf1ad1d78fb8a4c30cff999a90"}, {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:886eec03591b7cf058467a70a87733b35f44707bd86cf64a615584fd72488b7c"},
{file = "pydantic_core-2.18.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:201713f2f462e5c015b343e86e68bd8a530a4f76609b33d8f0ec65d2b921712a"}, {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ca7b0c1f1c983e064caa85f3792dd2fe3526b3505378874afa84baf662e12241"},
{file = "pydantic_core-2.18.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fd1a9edb9dd9d79fbeac1ea1f9a8dd527a6113b18d2e9bcc0d541d308dae639b"}, {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b4356d3538c3649337df4074e81b85f0616b79731fe22dd11b99499b2ebbdf3"},
{file = "pydantic_core-2.18.1-cp312-none-win32.whl", hash = "sha256:d5e6b7155b8197b329dc787356cfd2684c9d6a6b1a197f6bbf45f5555a98d411"}, {file = "pydantic_core-2.18.2-cp312-none-win32.whl", hash = "sha256:8b172601454f2d7701121bbec3425dd71efcb787a027edf49724c9cefc14c038"},
{file = "pydantic_core-2.18.1-cp312-none-win_amd64.whl", hash = "sha256:9376d83d686ec62e8b19c0ac3bf8d28d8a5981d0df290196fb6ef24d8a26f0d6"}, {file = "pydantic_core-2.18.2-cp312-none-win_amd64.whl", hash = "sha256:b1bd7e47b1558ea872bd16c8502c414f9e90dcf12f1395129d7bb42a09a95438"},
{file = "pydantic_core-2.18.1-cp312-none-win_arm64.whl", hash = "sha256:c562b49c96906b4029b5685075fe1ebd3b5cc2601dfa0b9e16c2c09d6cbce048"}, {file = "pydantic_core-2.18.2-cp312-none-win_arm64.whl", hash = "sha256:98758d627ff397e752bc339272c14c98199c613f922d4a384ddc07526c86a2ec"},
{file = "pydantic_core-2.18.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:3e352f0191d99fe617371096845070dee295444979efb8f27ad941227de6ad09"}, {file = "pydantic_core-2.18.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9fdad8e35f278b2c3eb77cbdc5c0a49dada440657bf738d6905ce106dc1de439"},
{file = "pydantic_core-2.18.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0295d52b012cbe0d3059b1dba99159c3be55e632aae1999ab74ae2bd86a33d7"}, {file = "pydantic_core-2.18.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1d90c3265ae107f91a4f279f4d6f6f1d4907ac76c6868b27dc7fb33688cfb347"},
{file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56823a92075780582d1ffd4489a2e61d56fd3ebb4b40b713d63f96dd92d28144"}, {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390193c770399861d8df9670fb0d1874f330c79caaca4642332df7c682bf6b91"},
{file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dd3f79e17b56741b5177bcc36307750d50ea0698df6aa82f69c7db32d968c1c2"}, {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:82d5d4d78e4448683cb467897fe24e2b74bb7b973a541ea1dcfec1d3cbce39fb"},
{file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38a5024de321d672a132b1834a66eeb7931959c59964b777e8f32dbe9523f6b1"}, {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4774f3184d2ef3e14e8693194f661dea5a4d6ca4e3dc8e39786d33a94865cefd"},
{file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ce426ee691319d4767748c8e0895cfc56593d725594e415f274059bcf3cb76"}, {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4d938ec0adf5167cb335acb25a4ee69a8107e4984f8fbd2e897021d9e4ca21b"},
{file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2adaeea59849ec0939af5c5d476935f2bab4b7f0335b0110f0f069a41024278e"}, {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0e8b1be28239fc64a88a8189d1df7fad8be8c1ae47fcc33e43d4be15f99cc70"},
{file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9b6431559676a1079eac0f52d6d0721fb8e3c5ba43c37bc537c8c83724031feb"}, {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:868649da93e5a3d5eacc2b5b3b9235c98ccdbfd443832f31e075f54419e1b96b"},
{file = "pydantic_core-2.18.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:85233abb44bc18d16e72dc05bf13848a36f363f83757541f1a97db2f8d58cfd9"}, {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:78363590ef93d5d226ba21a90a03ea89a20738ee5b7da83d771d283fd8a56761"},
{file = "pydantic_core-2.18.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:641a018af4fe48be57a2b3d7a1f0f5dbca07c1d00951d3d7463f0ac9dac66622"}, {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:852e966fbd035a6468fc0a3496589b45e2208ec7ca95c26470a54daed82a0788"},
{file = "pydantic_core-2.18.1-cp38-none-win32.whl", hash = "sha256:63d7523cd95d2fde0d28dc42968ac731b5bb1e516cc56b93a50ab293f4daeaad"}, {file = "pydantic_core-2.18.2-cp38-none-win32.whl", hash = "sha256:6a46e22a707e7ad4484ac9ee9f290f9d501df45954184e23fc29408dfad61350"},
{file = "pydantic_core-2.18.1-cp38-none-win_amd64.whl", hash = "sha256:907a4d7720abfcb1c81619863efd47c8a85d26a257a2dbebdb87c3b847df0278"}, {file = "pydantic_core-2.18.2-cp38-none-win_amd64.whl", hash = "sha256:d91cb5ea8b11607cc757675051f61b3d93f15eca3cefb3e6c704a5d6e8440f4e"},
{file = "pydantic_core-2.18.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:aad17e462f42ddbef5984d70c40bfc4146c322a2da79715932cd8976317054de"}, {file = "pydantic_core-2.18.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ae0a8a797a5e56c053610fa7be147993fe50960fa43609ff2a9552b0e07013e8"},
{file = "pydantic_core-2.18.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:94b9769ba435b598b547c762184bcfc4783d0d4c7771b04a3b45775c3589ca44"}, {file = "pydantic_core-2.18.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:042473b6280246b1dbf530559246f6842b56119c2926d1e52b631bdc46075f2a"},
{file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80e0e57cc704a52fb1b48f16d5b2c8818da087dbee6f98d9bf19546930dc64b5"}, {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a388a77e629b9ec814c1b1e6b3b595fe521d2cdc625fcca26fbc2d44c816804"},
{file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:76b86e24039c35280ceee6dce7e62945eb93a5175d43689ba98360ab31eebc4a"}, {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25add29b8f3b233ae90ccef2d902d0ae0432eb0d45370fe315d1a5cf231004b"},
{file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12a05db5013ec0ca4a32cc6433f53faa2a014ec364031408540ba858c2172bb0"}, {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f459a5ce8434614dfd39bbebf1041952ae01da6bed9855008cb33b875cb024c0"},
{file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:250ae39445cb5475e483a36b1061af1bc233de3e9ad0f4f76a71b66231b07f88"}, {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eff2de745698eb46eeb51193a9f41d67d834d50e424aef27df2fcdee1b153845"},
{file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a32204489259786a923e02990249c65b0f17235073149d0033efcebe80095570"}, {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8309f67285bdfe65c372ea3722b7a5642680f3dba538566340a9d36e920b5f0"},
{file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6395a4435fa26519fd96fdccb77e9d00ddae9dd6c742309bd0b5610609ad7fb2"}, {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f93a8a2e3938ff656a7c1bc57193b1319960ac015b6e87d76c76bf14fe0244b4"},
{file = "pydantic_core-2.18.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2533ad2883f001efa72f3d0e733fb846710c3af6dcdd544fe5bf14fa5fe2d7db"}, {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:22057013c8c1e272eb8d0eebc796701167d8377441ec894a8fed1af64a0bf399"},
{file = "pydantic_core-2.18.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b560b72ed4816aee52783c66854d96157fd8175631f01ef58e894cc57c84f0f6"}, {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cfeecd1ac6cc1fb2692c3d5110781c965aabd4ec5d32799773ca7b1456ac636b"},
{file = "pydantic_core-2.18.1-cp39-none-win32.whl", hash = "sha256:582cf2cead97c9e382a7f4d3b744cf0ef1a6e815e44d3aa81af3ad98762f5a9b"}, {file = "pydantic_core-2.18.2-cp39-none-win32.whl", hash = "sha256:0d69b4c2f6bb3e130dba60d34c0845ba31b69babdd3f78f7c0c8fae5021a253e"},
{file = "pydantic_core-2.18.1-cp39-none-win_amd64.whl", hash = "sha256:ca71d501629d1fa50ea7fa3b08ba884fe10cefc559f5c6c8dfe9036c16e8ae89"}, {file = "pydantic_core-2.18.2-cp39-none-win_amd64.whl", hash = "sha256:d9319e499827271b09b4e411905b24a426b8fb69464dfa1696258f53a3334641"},
{file = "pydantic_core-2.18.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e178e5b66a06ec5bf51668ec0d4ac8cfb2bdcb553b2c207d58148340efd00143"}, {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a1874c6dd4113308bd0eb568418e6114b252afe44319ead2b4081e9b9521fe75"},
{file = "pydantic_core-2.18.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:72722ce529a76a4637a60be18bd789d8fb871e84472490ed7ddff62d5fed620d"}, {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:ccdd111c03bfd3666bd2472b674c6899550e09e9f298954cfc896ab92b5b0e6d"},
{file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fe0c1ce5b129455e43f941f7a46f61f3d3861e571f2905d55cdbb8b5c6f5e2c"}, {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e18609ceaa6eed63753037fc06ebb16041d17d28199ae5aba0052c51449650a9"},
{file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4284c621f06a72ce2cb55f74ea3150113d926a6eb78ab38340c08f770eb9b4d"}, {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e5c584d357c4e2baf0ff7baf44f4994be121e16a2c88918a5817331fc7599d7"},
{file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a0c3e718f4e064efde68092d9d974e39572c14e56726ecfaeebbe6544521f47"}, {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43f0f463cf89ace478de71a318b1b4f05ebc456a9b9300d027b4b57c1a2064fb"},
{file = "pydantic_core-2.18.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:2027493cc44c23b598cfaf200936110433d9caa84e2c6cf487a83999638a96ac"}, {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e1b395e58b10b73b07b7cf740d728dd4ff9365ac46c18751bf8b3d8cca8f625a"},
{file = "pydantic_core-2.18.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:76909849d1a6bffa5a07742294f3fa1d357dc917cb1fe7b470afbc3a7579d539"}, {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0098300eebb1c837271d3d1a2cd2911e7c11b396eac9661655ee524a7f10587b"},
{file = "pydantic_core-2.18.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ee7ccc7fb7e921d767f853b47814c3048c7de536663e82fbc37f5eb0d532224b"}, {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:36789b70d613fbac0a25bb07ab3d9dba4d2e38af609c020cf4d888d165ee0bf3"},
{file = "pydantic_core-2.18.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ee2794111c188548a4547eccc73a6a8527fe2af6cf25e1a4ebda2fd01cdd2e60"}, {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3f9a801e7c8f1ef8718da265bba008fa121243dfe37c1cea17840b0944dfd72c"},
{file = "pydantic_core-2.18.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a139fe9f298dc097349fb4f28c8b81cc7a202dbfba66af0e14be5cfca4ef7ce5"}, {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:3a6515ebc6e69d85502b4951d89131ca4e036078ea35533bb76327f8424531ce"},
{file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d074b07a10c391fc5bbdcb37b2f16f20fcd9e51e10d01652ab298c0d07908ee2"}, {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20aca1e2298c56ececfd8ed159ae4dde2df0781988c97ef77d5c16ff4bd5b400"},
{file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c69567ddbac186e8c0aadc1f324a60a564cfe25e43ef2ce81bcc4b8c3abffbae"}, {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:223ee893d77a310a0391dca6df00f70bbc2f36a71a895cecd9a0e762dc37b349"},
{file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:baf1c7b78cddb5af00971ad5294a4583188bda1495b13760d9f03c9483bb6203"}, {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2334ce8c673ee93a1d6a65bd90327588387ba073c17e61bf19b4fd97d688d63c"},
{file = "pydantic_core-2.18.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:2684a94fdfd1b146ff10689c6e4e815f6a01141781c493b97342cdc5b06f4d5d"}, {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cbca948f2d14b09d20268cda7b0367723d79063f26c4ffc523af9042cad95592"},
{file = "pydantic_core-2.18.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:73c1bc8a86a5c9e8721a088df234265317692d0b5cd9e86e975ce3bc3db62a59"}, {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b3ef08e20ec49e02d5c6717a91bb5af9b20f1805583cb0adfe9ba2c6b505b5ae"},
{file = "pydantic_core-2.18.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e60defc3c15defb70bb38dd605ff7e0fae5f6c9c7cbfe0ad7868582cb7e844a6"}, {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6fdc8627910eed0c01aed6a390a252fe3ea6d472ee70fdde56273f198938374"},
{file = "pydantic_core-2.18.1.tar.gz", hash = "sha256:de9d3e8717560eb05e28739d1b35e4eac2e458553a52a301e51352a7ffc86a35"}, {file = "pydantic_core-2.18.2.tar.gz", hash = "sha256:2e29d20810dfc3043ee13ac7d9e25105799817683348823f305ab3f349b9386e"},
] ]
[package.dependencies] [package.dependencies]
@@ -4005,13 +4053,13 @@ files = [
[[package]] [[package]]
name = "pyright" name = "pyright"
version = "1.1.359" version = "1.1.360"
description = "Command line wrapper for pyright" description = "Command line wrapper for pyright"
optional = true optional = true
python-versions = ">=3.7" python-versions = ">=3.7"
files = [ files = [
{file = "pyright-1.1.359-py3-none-any.whl", hash = "sha256:5582777be7eab73512277ac7da7b41e15bc0737f488629cb9babd96e0769be61"}, {file = "pyright-1.1.360-py3-none-any.whl", hash = "sha256:7637f75451ac968b7cf1f8c51cfefb6d60ac7d086eb845364bc8ac03a026efd7"},
{file = "pyright-1.1.359.tar.gz", hash = "sha256:f0eab50f3dafce8a7302caeafd6a733f39901a2bf5170bb23d77fd607c8a8dbc"}, {file = "pyright-1.1.360.tar.gz", hash = "sha256:784ddcda9745e9f5610483d7b963e9aa8d4f50d7755a9dffb28ccbeb27adce32"},
] ]
[package.dependencies] [package.dependencies]
@@ -4981,6 +5029,19 @@ files = [
[package.dependencies] [package.dependencies]
mpmath = ">=0.19" mpmath = ">=0.19"
[[package]]
name = "tbb"
version = "2021.12.0"
description = "Intel® oneAPI Threading Building Blocks (oneTBB)"
optional = true
python-versions = "*"
files = [
{file = "tbb-2021.12.0-py2.py3-none-manylinux1_i686.whl", hash = "sha256:f2cc9a7f8ababaa506cbff796ce97c3bf91062ba521e15054394f773375d81d8"},
{file = "tbb-2021.12.0-py2.py3-none-manylinux1_x86_64.whl", hash = "sha256:a925e9a7c77d3a46ae31c34b0bb7f801c4118e857d137b68f68a8e458fcf2bd7"},
{file = "tbb-2021.12.0-py3-none-win32.whl", hash = "sha256:b1725b30c174048edc8be70bd43bb95473f396ce895d91151a474d0fa9f450a8"},
{file = "tbb-2021.12.0-py3-none-win_amd64.whl", hash = "sha256:fc2772d850229f2f3df85f1109c4844c495a2db7433d38200959ee9265b34789"},
]
[[package]] [[package]]
name = "tenacity" name = "tenacity"
version = "8.2.3" version = "8.2.3"
@@ -5213,42 +5274,38 @@ files = [
[[package]] [[package]]
name = "torch" name = "torch"
version = "2.2.2" version = "2.3.0"
description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration"
optional = true optional = true
python-versions = ">=3.8.0" python-versions = ">=3.8.0"
files = [ files = [
{file = "torch-2.2.2-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:bc889d311a855dd2dfd164daf8cc903a6b7273a747189cebafdd89106e4ad585"}, {file = "torch-2.3.0-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:d8ea5a465dbfd8501f33c937d1f693176c9aef9d1c1b0ca1d44ed7b0a18c52ac"},
{file = "torch-2.2.2-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:15dffa4cc3261fa73d02f0ed25f5fa49ecc9e12bf1ae0a4c1e7a88bbfaad9030"}, {file = "torch-2.3.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:09c81c5859a5b819956c6925a405ef1cdda393c9d8a01ce3851453f699d3358c"},
{file = "torch-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:11e8fe261233aeabd67696d6b993eeb0896faa175c6b41b9a6c9f0334bdad1c5"}, {file = "torch-2.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:1bf023aa20902586f614f7682fedfa463e773e26c58820b74158a72470259459"},
{file = "torch-2.2.2-cp310-none-macosx_10_9_x86_64.whl", hash = "sha256:b2e2200b245bd9f263a0d41b6a2dab69c4aca635a01b30cca78064b0ef5b109e"}, {file = "torch-2.3.0-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:758ef938de87a2653bba74b91f703458c15569f1562bf4b6c63c62d9c5a0c1f5"},
{file = "torch-2.2.2-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:877b3e6593b5e00b35bbe111b7057464e76a7dd186a287280d941b564b0563c2"}, {file = "torch-2.3.0-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:493d54ee2f9df100b5ce1d18c96dbb8d14908721f76351e908c9d2622773a788"},
{file = "torch-2.2.2-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:ad4c03b786e074f46606f4151c0a1e3740268bcf29fbd2fdf6666d66341c1dcb"}, {file = "torch-2.3.0-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:bce43af735c3da16cc14c7de2be7ad038e2fbf75654c2e274e575c6c05772ace"},
{file = "torch-2.2.2-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:32827fa1fbe5da8851686256b4cd94cc7b11be962862c2293811c94eea9457bf"}, {file = "torch-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:729804e97b7cf19ae9ab4181f91f5e612af07956f35c8b2c8e9d9f3596a8e877"},
{file = "torch-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:f9ef0a648310435511e76905f9b89612e45ef2c8b023bee294f5e6f7e73a3e7c"}, {file = "torch-2.3.0-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:d24e328226d8e2af7cf80fcb1d2f1d108e0de32777fab4aaa2b37b9765d8be73"},
{file = "torch-2.2.2-cp311-none-macosx_10_9_x86_64.whl", hash = "sha256:95b9b44f3bcebd8b6cd8d37ec802048c872d9c567ba52c894bba90863a439059"}, {file = "torch-2.3.0-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:b0de2bdc0486ea7b14fc47ff805172df44e421a7318b7c4d92ef589a75d27410"},
{file = "torch-2.2.2-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:49aa4126ede714c5aeef7ae92969b4b0bbe67f19665106463c39f22e0a1860d1"}, {file = "torch-2.3.0-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:a306c87a3eead1ed47457822c01dfbd459fe2920f2d38cbdf90de18f23f72542"},
{file = "torch-2.2.2-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:cf12cdb66c9c940227ad647bc9cf5dba7e8640772ae10dfe7569a0c1e2a28aca"}, {file = "torch-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:f9b98bf1a3c8af2d4c41f0bf1433920900896c446d1ddc128290ff146d1eb4bd"},
{file = "torch-2.2.2-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:89ddac2a8c1fb6569b90890955de0c34e1724f87431cacff4c1979b5f769203c"}, {file = "torch-2.3.0-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:dca986214267b34065a79000cee54232e62b41dff1ec2cab9abc3fc8b3dee0ad"},
{file = "torch-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:451331406b760f4b1ab298ddd536486ab3cfb1312614cfe0532133535be60bea"}, {file = "torch-2.3.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:20572f426965dd8a04e92a473d7e445fa579e09943cc0354f3e6fef6130ce061"},
{file = "torch-2.2.2-cp312-none-macosx_10_9_x86_64.whl", hash = "sha256:eb4d6e9d3663e26cd27dc3ad266b34445a16b54908e74725adb241aa56987533"}, {file = "torch-2.3.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:e65ba85ae292909cde0dde6369826d51165a3fc8823dc1854cd9432d7f79b932"},
{file = "torch-2.2.2-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:bf9558da7d2bf7463390b3b2a61a6a3dbb0b45b161ee1dd5ec640bf579d479fc"}, {file = "torch-2.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:5515503a193781fd1b3f5c474e89c9dfa2faaa782b2795cc4a7ab7e67de923f6"},
{file = "torch-2.2.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:cd2bf7697c9e95fb5d97cc1d525486d8cf11a084c6af1345c2c2c22a6b0029d0"}, {file = "torch-2.3.0-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:6ae9f64b09516baa4ef890af0672dc981c20b1f0d829ce115d4420a247e88fba"},
{file = "torch-2.2.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:b421448d194496e1114d87a8b8d6506bce949544e513742b097e2ab8f7efef32"}, {file = "torch-2.3.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:cd0dc498b961ab19cb3f8dbf0c6c50e244f2f37dbfa05754ab44ea057c944ef9"},
{file = "torch-2.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:3dbcd563a9b792161640c0cffe17e3270d85e8f4243b1f1ed19cca43d28d235b"}, {file = "torch-2.3.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:e05f836559251e4096f3786ee99f4a8cbe67bc7fbedba8ad5e799681e47c5e80"},
{file = "torch-2.2.2-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:31f4310210e7dda49f1fb52b0ec9e59382cfcb938693f6d5378f25b43d7c1d29"}, {file = "torch-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:4fb27b35dbb32303c2927da86e27b54a92209ddfb7234afb1949ea2b3effffea"},
{file = "torch-2.2.2-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:c795feb7e8ce2e0ef63f75f8e1ab52e7fd5e1a4d7d0c31367ade1e3de35c9e95"}, {file = "torch-2.3.0-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:760f8bedff506ce9e6e103498f9b1e9e15809e008368594c3a66bf74a8a51380"},
{file = "torch-2.2.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:a6e5770d68158d07456bfcb5318b173886f579fdfbf747543901ce718ea94782"},
{file = "torch-2.2.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:67dcd726edff108e2cd6c51ff0e416fd260c869904de95750e80051358680d24"},
{file = "torch-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:539d5ef6c4ce15bd3bd47a7b4a6e7c10d49d4d21c0baaa87c7d2ef8698632dfb"},
{file = "torch-2.2.2-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:dff696de90d6f6d1e8200e9892861fd4677306d0ef604cb18f2134186f719f82"},
{file = "torch-2.2.2-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:3a4dd910663fd7a124c056c878a52c2b0be4a5a424188058fe97109d4436ee42"},
] ]
[package.dependencies] [package.dependencies]
filelock = "*" filelock = "*"
fsspec = "*" fsspec = "*"
jinja2 = "*" jinja2 = "*"
mkl = {version = ">=2021.1.1,<=2021.4.0", markers = "platform_system == \"Windows\""}
networkx = "*" networkx = "*"
nvidia-cublas-cu12 = {version = "12.1.3.1", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} nvidia-cublas-cu12 = {version = "12.1.3.1", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""}
nvidia-cuda-cupti-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} nvidia-cuda-cupti-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""}
@@ -5259,10 +5316,10 @@ nvidia-cufft-cu12 = {version = "11.0.2.54", markers = "platform_system == \"Linu
nvidia-curand-cu12 = {version = "10.3.2.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} nvidia-curand-cu12 = {version = "10.3.2.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""}
nvidia-cusolver-cu12 = {version = "11.4.5.107", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} nvidia-cusolver-cu12 = {version = "11.4.5.107", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""}
nvidia-cusparse-cu12 = {version = "12.1.0.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} nvidia-cusparse-cu12 = {version = "12.1.0.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""}
nvidia-nccl-cu12 = {version = "2.19.3", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} nvidia-nccl-cu12 = {version = "2.20.5", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""}
nvidia-nvtx-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} nvidia-nvtx-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""}
sympy = "*" sympy = "*"
triton = {version = "2.2.0", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\" and python_version < \"3.12\""} triton = {version = "2.3.0", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\" and python_version < \"3.12\""}
typing-extensions = ">=4.8.0" typing-extensions = ">=4.8.0"
[package.extras] [package.extras]
@@ -5306,13 +5363,13 @@ test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,
[[package]] [[package]]
name = "transformers" name = "transformers"
version = "4.40.0" version = "4.40.1"
description = "State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow" description = "State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow"
optional = true optional = true
python-versions = ">=3.8.0" python-versions = ">=3.8.0"
files = [ files = [
{file = "transformers-4.40.0-py3-none-any.whl", hash = "sha256:92797ec3368ed4476a053529a4039a12ad09167d9e371981dda4afb4bdf590ac"}, {file = "transformers-4.40.1-py3-none-any.whl", hash = "sha256:9d5ee0c8142a60501faf9e49a0b42f8e9cb8611823bce4f195a9325a6816337e"},
{file = "transformers-4.40.0.tar.gz", hash = "sha256:fdb01dfe6a492bd34e3fa2aefffa470b1d8a2341db47a932f83ed33839d96b03"}, {file = "transformers-4.40.1.tar.gz", hash = "sha256:55e1697e6f18b58273e7117bb469cdffc11be28995462d8d5e422fef38d2de36"},
] ]
[package.dependencies] [package.dependencies]
@@ -5374,17 +5431,17 @@ vision = ["Pillow (>=10.0.1,<=15.0)"]
[[package]] [[package]]
name = "triton" name = "triton"
version = "2.2.0" version = "2.3.0"
description = "A language and compiler for custom Deep Learning operations" description = "A language and compiler for custom Deep Learning operations"
optional = true optional = true
python-versions = "*" python-versions = "*"
files = [ files = [
{file = "triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2294514340cfe4e8f4f9e5c66c702744c4a117d25e618bd08469d0bfed1e2e5"}, {file = "triton-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ce4b8ff70c48e47274c66f269cce8861cf1dc347ceeb7a67414ca151b1822d8"},
{file = "triton-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da58a152bddb62cafa9a857dd2bc1f886dbf9f9c90a2b5da82157cd2b34392b0"}, {file = "triton-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c3d9607f85103afdb279938fc1dd2a66e4f5999a58eb48a346bd42738f986dd"},
{file = "triton-2.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af58716e721460a61886668b205963dc4d1e4ac20508cc3f623aef0d70283d5"}, {file = "triton-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:218d742e67480d9581bafb73ed598416cc8a56f6316152e5562ee65e33de01c0"},
{file = "triton-2.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8fe46d3ab94a8103e291bd44c741cc294b91d1d81c1a2888254cbf7ff846dab"}, {file = "triton-2.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:381ec6b3dac06922d3e4099cfc943ef032893b25415de295e82b1a82b0359d2c"},
{file = "triton-2.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8ce26093e539d727e7cf6f6f0d932b1ab0574dc02567e684377630d86723ace"}, {file = "triton-2.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:038e06a09c06a164fef9c48de3af1e13a63dc1ba3c792871e61a8e79720ea440"},
{file = "triton-2.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:227cc6f357c5efcb357f3867ac2a8e7ecea2298cd4606a8ba1e931d1d5a947df"}, {file = "triton-2.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d8f636e0341ac348899a47a057c3daea99ea7db31528a225a3ba4ded28ccc65"},
] ]
[package.dependencies] [package.dependencies]
@@ -5545,13 +5602,13 @@ test = ["Cython (>=0.29.36,<0.30.0)", "aiohttp (==3.9.0b0)", "aiohttp (>=3.8.1)"
[[package]] [[package]]
name = "virtualenv" name = "virtualenv"
version = "20.25.3" version = "20.26.0"
description = "Virtual Python Environment builder" description = "Virtual Python Environment builder"
optional = true optional = true
python-versions = ">=3.7" python-versions = ">=3.7"
files = [ files = [
{file = "virtualenv-20.25.3-py3-none-any.whl", hash = "sha256:8aac4332f2ea6ef519c648d0bc48a5b1d324994753519919bddbb1aff25a104e"}, {file = "virtualenv-20.26.0-py3-none-any.whl", hash = "sha256:0846377ea76e818daaa3e00a4365c018bc3ac9760cbb3544de542885aad61fb3"},
{file = "virtualenv-20.25.3.tar.gz", hash = "sha256:7bb554bbdfeaacc3349fa614ea5bff6ac300fc7c335e9facf3a3bcfc703f45be"}, {file = "virtualenv-20.26.0.tar.gz", hash = "sha256:ec25a9671a5102c8d2657f62792a27b48f016664c6873f6beed3800008577210"},
] ]
[package.dependencies] [package.dependencies]
@@ -5663,17 +5720,17 @@ files = [
[[package]] [[package]]
name = "websocket-client" name = "websocket-client"
version = "1.7.0" version = "1.8.0"
description = "WebSocket client for Python with low level API options" description = "WebSocket client for Python with low level API options"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "websocket-client-1.7.0.tar.gz", hash = "sha256:10e511ea3a8c744631d3bd77e61eb17ed09304c413ad42cf6ddfa4c7787e8fe6"}, {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"},
{file = "websocket_client-1.7.0-py3-none-any.whl", hash = "sha256:f4c3d22fec12a2461427a29957ff07d35098ee2d976d3ba244e688b8b4057588"}, {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"},
] ]
[package.extras] [package.extras]
docs = ["Sphinx (>=6.0)", "sphinx-rtd-theme (>=1.1.0)"] docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"]
optional = ["python-socks", "wsaccel"] optional = ["python-socks", "wsaccel"]
test = ["websockets"] test = ["websockets"]
@@ -6074,7 +6131,7 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
[extras] [extras]
autogen = ["pyautogen"] autogen = ["pyautogen"]
dev = ["autoflake", "black", "datasets", "pexpect", "pre-commit", "pyright", "pytest", "pytest-asyncio", "pytest-order"] dev = ["autoflake", "black", "datasets", "isort", "pexpect", "pre-commit", "pyright", "pytest", "pytest-asyncio", "pytest-order"]
local = ["llama-index-embeddings-huggingface"] local = ["llama-index-embeddings-huggingface"]
postgres = ["pg8000", "pgvector"] postgres = ["pg8000", "pgvector"]
server = ["fastapi", "uvicorn", "websockets"] server = ["fastapi", "uvicorn", "websockets"]
@@ -6082,4 +6139,4 @@ server = ["fastapi", "uvicorn", "websockets"]
[metadata] [metadata]
lock-version = "2.0" lock-version = "2.0"
python-versions = "<3.13,>=3.10" python-versions = "<3.13,>=3.10"
content-hash = "81e487963aaa7b393d7bf71d603481b9fd515002f23f9aed9ebb9581b3fe9729" content-hash = "03cc31f8b43801bf2e932b43eaaf0ed14d85bd905cf329a55392195bfdd76da3"

View File

@@ -60,11 +60,12 @@ pytest-asyncio = {version = "^0.23.2", optional = true}
pytest = { version = "^7.4.4", optional = true } pytest = { version = "^7.4.4", optional = true }
pydantic-settings = "^2.2.1" pydantic-settings = "^2.2.1"
httpx-sse = "^0.4.0" httpx-sse = "^0.4.0"
isort = { version = "^5.13.2", optional = true }
[tool.poetry.extras] [tool.poetry.extras]
local = ["llama-index-embeddings-huggingface"] local = ["llama-index-embeddings-huggingface"]
postgres = ["pgvector", "pg8000", "psycopg2-binary"] postgres = ["pgvector", "pg8000", "psycopg2-binary"]
dev = ["pytest", "pytest-asyncio", "pexpect", "black", "pre-commit", "datasets", "pyright", "pytest-order", "autoflake"] dev = ["pytest", "pytest-asyncio", "pexpect", "black", "pre-commit", "datasets", "pyright", "pytest-order", "autoflake", "isort"]
server = ["websockets", "fastapi", "uvicorn"] server = ["websockets", "fastapi", "uvicorn"]
autogen = ["pyautogen"] autogen = ["pyautogen"]

View File

@@ -3,4 +3,4 @@ pythonpath = /memgpt
testpaths = /tests testpaths = /tests
asyncio_mode = auto asyncio_mode = auto
filterwarnings = filterwarnings =
ignore::pytest.PytestRemovedIn8Warning ignore::pytest.PytestRemovedIn8Warning

View File

@@ -9,7 +9,6 @@ from dotenv import load_dotenv
from memgpt import Admin from memgpt import Admin
from memgpt.credentials import MemGPTCredentials from memgpt.credentials import MemGPTCredentials
from memgpt.data_types import EmbeddingConfig, LLMConfig from memgpt.data_types import EmbeddingConfig, LLMConfig
from memgpt.server.rest_api.server import start_server
from memgpt.settings import settings from memgpt.settings import settings
from tests.config import TestMGPTConfig from tests.config import TestMGPTConfig

View File

@@ -8,7 +8,14 @@ from sqlalchemy.ext.declarative import declarative_base
from memgpt.agent_store.storage import StorageConnector, TableType from memgpt.agent_store.storage import StorageConnector, TableType
from memgpt.constants import MAX_EMBEDDING_DIM from memgpt.constants import MAX_EMBEDDING_DIM
from memgpt.credentials import MemGPTCredentials from memgpt.credentials import MemGPTCredentials
from memgpt.data_types import AgentState, EmbeddingConfig, LLMConfig, Message, Passage, User from memgpt.data_types import (
AgentState,
EmbeddingConfig,
LLMConfig,
Message,
Passage,
User,
)
from memgpt.embeddings import embedding_model, query_embedding from memgpt.embeddings import embedding_model, query_embedding
from memgpt.metadata import MetadataStore from memgpt.metadata import MetadataStore
from memgpt.settings import settings from memgpt.settings import settings