letta-nightly 0.5.0.dev20241019104023__tar.gz → 0.5.0.dev20241021104213__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of letta-nightly might be problematic. Click here for more details.

Files changed (195) hide show
  1. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/PKG-INFO +1 -1
  2. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/agent.py +2 -1
  3. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/llm_api/openai.py +12 -2
  4. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/letta_message.py +8 -4
  5. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/message.py +3 -0
  6. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/interface.py +15 -2
  7. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/utils.py +3 -0
  8. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/pyproject.toml +1 -1
  9. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/LICENSE +0 -0
  10. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/README.md +0 -0
  11. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/__init__.py +0 -0
  12. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/__main__.py +0 -0
  13. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/agent_store/chroma.py +0 -0
  14. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/agent_store/db.py +0 -0
  15. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/agent_store/lancedb.py +0 -0
  16. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/agent_store/milvus.py +0 -0
  17. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/agent_store/qdrant.py +0 -0
  18. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/agent_store/storage.py +0 -0
  19. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/base.py +0 -0
  20. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/benchmark/benchmark.py +0 -0
  21. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/benchmark/constants.py +0 -0
  22. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/cli/cli.py +0 -0
  23. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/cli/cli_config.py +0 -0
  24. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/cli/cli_load.py +0 -0
  25. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/client/__init__.py +0 -0
  26. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/client/admin.py +0 -0
  27. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/client/client.py +0 -0
  28. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/client/streaming.py +0 -0
  29. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/client/utils.py +0 -0
  30. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/config.py +0 -0
  31. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/constants.py +0 -0
  32. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/credentials.py +0 -0
  33. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/data_sources/connectors.py +0 -0
  34. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/data_sources/connectors_helper.py +0 -0
  35. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/embeddings.py +0 -0
  36. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/errors.py +0 -0
  37. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/functions/__init__.py +0 -0
  38. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/functions/function_sets/base.py +0 -0
  39. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/functions/function_sets/extras.py +0 -0
  40. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/functions/functions.py +0 -0
  41. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/functions/helpers.py +0 -0
  42. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/functions/schema_generator.py +0 -0
  43. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/humans/__init__.py +0 -0
  44. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/humans/examples/basic.txt +0 -0
  45. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/humans/examples/cs_phd.txt +0 -0
  46. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/interface.py +0 -0
  47. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/llm_api/__init__.py +0 -0
  48. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/llm_api/anthropic.py +0 -0
  49. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/llm_api/azure_openai.py +0 -0
  50. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/llm_api/azure_openai_constants.py +0 -0
  51. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/llm_api/cohere.py +0 -0
  52. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/llm_api/google_ai.py +0 -0
  53. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/llm_api/helpers.py +0 -0
  54. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/llm_api/llm_api_tools.py +0 -0
  55. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/llm_api/mistral.py +0 -0
  56. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/README.md +0 -0
  57. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/__init__.py +0 -0
  58. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/chat_completion_proxy.py +0 -0
  59. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/constants.py +0 -0
  60. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/function_parser.py +0 -0
  61. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/grammars/__init__.py +0 -0
  62. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/grammars/gbnf_grammar_generator.py +0 -0
  63. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/grammars/json.gbnf +0 -0
  64. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/grammars/json_func_calls_with_inner_thoughts.gbnf +0 -0
  65. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/json_parser.py +0 -0
  66. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/koboldcpp/api.py +0 -0
  67. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/koboldcpp/settings.py +0 -0
  68. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/llamacpp/api.py +0 -0
  69. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/llamacpp/settings.py +0 -0
  70. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/llm_chat_completion_wrappers/__init__.py +0 -0
  71. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/llm_chat_completion_wrappers/airoboros.py +0 -0
  72. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/llm_chat_completion_wrappers/chatml.py +0 -0
  73. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/llm_chat_completion_wrappers/configurable_wrapper.py +0 -0
  74. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/llm_chat_completion_wrappers/dolphin.py +0 -0
  75. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/llm_chat_completion_wrappers/llama3.py +0 -0
  76. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/llm_chat_completion_wrappers/simple_summary_wrapper.py +0 -0
  77. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/llm_chat_completion_wrappers/wrapper_base.py +0 -0
  78. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/llm_chat_completion_wrappers/zephyr.py +0 -0
  79. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/lmstudio/api.py +0 -0
  80. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/lmstudio/settings.py +0 -0
  81. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/ollama/api.py +0 -0
  82. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/ollama/settings.py +0 -0
  83. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/settings/__init__.py +0 -0
  84. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/settings/deterministic_mirostat.py +0 -0
  85. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/settings/settings.py +0 -0
  86. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/settings/simple.py +0 -0
  87. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/utils.py +0 -0
  88. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/vllm/api.py +0 -0
  89. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/webui/api.py +0 -0
  90. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/webui/legacy_api.py +0 -0
  91. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/webui/legacy_settings.py +0 -0
  92. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/local_llm/webui/settings.py +0 -0
  93. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/log.py +0 -0
  94. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/main.py +0 -0
  95. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/memory.py +0 -0
  96. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/metadata.py +0 -0
  97. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/o1_agent.py +0 -0
  98. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/openai_backcompat/__init__.py +0 -0
  99. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/openai_backcompat/openai_object.py +0 -0
  100. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/persistence_manager.py +0 -0
  101. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/personas/__init__.py +0 -0
  102. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/personas/examples/anna_pa.txt +0 -0
  103. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/personas/examples/google_search_persona.txt +0 -0
  104. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/personas/examples/memgpt_doc.txt +0 -0
  105. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/personas/examples/memgpt_starter.txt +0 -0
  106. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/personas/examples/o1_persona.txt +0 -0
  107. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/personas/examples/sam.txt +0 -0
  108. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/personas/examples/sam_pov.txt +0 -0
  109. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/personas/examples/sam_simple_pov_gpt35.txt +0 -0
  110. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/personas/examples/sqldb/test.db +0 -0
  111. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/prompts/__init__.py +0 -0
  112. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/prompts/gpt_summarize.py +0 -0
  113. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/prompts/gpt_system.py +0 -0
  114. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/prompts/system/memgpt_base.txt +0 -0
  115. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/prompts/system/memgpt_chat.txt +0 -0
  116. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/prompts/system/memgpt_chat_compressed.txt +0 -0
  117. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/prompts/system/memgpt_chat_fstring.txt +0 -0
  118. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/prompts/system/memgpt_doc.txt +0 -0
  119. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/prompts/system/memgpt_gpt35_extralong.txt +0 -0
  120. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/prompts/system/memgpt_intuitive_knowledge.txt +0 -0
  121. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/prompts/system/memgpt_modified_chat.txt +0 -0
  122. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/prompts/system/memgpt_modified_o1.txt +0 -0
  123. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/providers.py +0 -0
  124. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/pytest.ini +0 -0
  125. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/agent.py +0 -0
  126. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/api_key.py +0 -0
  127. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/block.py +0 -0
  128. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/embedding_config.py +0 -0
  129. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/enums.py +0 -0
  130. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/file.py +0 -0
  131. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/health.py +0 -0
  132. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/job.py +0 -0
  133. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/letta_base.py +0 -0
  134. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/letta_request.py +0 -0
  135. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/letta_response.py +0 -0
  136. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/llm_config.py +0 -0
  137. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/memory.py +0 -0
  138. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/openai/chat_completion_request.py +0 -0
  139. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/openai/chat_completion_response.py +0 -0
  140. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/openai/chat_completions.py +0 -0
  141. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/openai/embedding_response.py +0 -0
  142. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/openai/openai.py +0 -0
  143. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/organization.py +0 -0
  144. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/passage.py +0 -0
  145. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/source.py +0 -0
  146. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/tool.py +0 -0
  147. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/usage.py +0 -0
  148. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/schemas/user.py +0 -0
  149. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/__init__.py +0 -0
  150. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/constants.py +0 -0
  151. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/__init__.py +0 -0
  152. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/admin/__init__.py +0 -0
  153. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/admin/agents.py +0 -0
  154. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/admin/tools.py +0 -0
  155. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/admin/users.py +0 -0
  156. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/app.py +0 -0
  157. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/auth/__init__.py +0 -0
  158. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/auth/index.py +0 -0
  159. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/auth_token.py +0 -0
  160. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/__init__.py +0 -0
  161. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/openai/__init__.py +0 -0
  162. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/openai/assistants/__init__.py +0 -0
  163. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/openai/assistants/assistants.py +0 -0
  164. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/openai/assistants/schemas.py +0 -0
  165. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/openai/assistants/threads.py +0 -0
  166. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/openai/chat_completions/__init__.py +0 -0
  167. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +0 -0
  168. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/v1/__init__.py +0 -0
  169. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/v1/agents.py +0 -0
  170. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/v1/blocks.py +0 -0
  171. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/v1/health.py +0 -0
  172. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/v1/jobs.py +0 -0
  173. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/v1/llms.py +0 -0
  174. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/v1/organizations.py +0 -0
  175. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/v1/sources.py +0 -0
  176. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/v1/tools.py +0 -0
  177. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/routers/v1/users.py +0 -0
  178. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/static_files.py +0 -0
  179. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/rest_api/utils.py +0 -0
  180. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/server.py +0 -0
  181. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/startup.sh +0 -0
  182. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/static_files/assets/index-3ab03d5b.css +0 -0
  183. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/static_files/assets/index-d6b3669a.js +0 -0
  184. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/static_files/favicon.ico +0 -0
  185. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/static_files/index.html +0 -0
  186. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/static_files/memgpt_logo_transparent.png +0 -0
  187. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/utils.py +0 -0
  188. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/ws_api/__init__.py +0 -0
  189. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/ws_api/example_client.py +0 -0
  190. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/ws_api/interface.py +0 -0
  191. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/ws_api/protocol.py +0 -0
  192. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/server/ws_api/server.py +0 -0
  193. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/settings.py +0 -0
  194. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/streaming_interface.py +0 -0
  195. {letta_nightly-0.5.0.dev20241019104023 → letta_nightly-0.5.0.dev20241021104213}/letta/system.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-nightly
3
- Version: 0.5.0.dev20241019104023
3
+ Version: 0.5.0.dev20241021104213
4
4
  Summary: Create LLM agents with long-term memory and custom tools
5
5
  License: Apache License
6
6
  Author: Letta Team
@@ -503,7 +503,7 @@ class Agent(BaseAgent):
503
503
  def _handle_ai_response(
504
504
  self,
505
505
  response_message: ChatCompletionMessage, # TODO should we eventually move the Message creation outside of this function?
506
- override_tool_call_id: bool = True,
506
+ override_tool_call_id: bool = False,
507
507
  # If we are streaming, we needed to create a Message ID ahead of time,
508
508
  # and now we want to use it in the creation of the Message object
509
509
  # TODO figure out a cleaner way to do this
@@ -530,6 +530,7 @@ class Agent(BaseAgent):
530
530
 
531
531
  # generate UUID for tool call
532
532
  if override_tool_call_id or response_message.function_call:
533
+ warnings.warn("Overriding the tool call can result in inconsistent tool call IDs during streaming")
533
534
  tool_call_id = get_tool_call_id() # needs to be a string for JSON
534
535
  response_message.tool_calls[0].id = tool_call_id
535
536
  else:
@@ -41,7 +41,7 @@ from letta.streaming_interface import (
41
41
  AgentChunkStreamingInterface,
42
42
  AgentRefreshStreamingInterface,
43
43
  )
44
- from letta.utils import smart_urljoin
44
+ from letta.utils import get_tool_call_id, smart_urljoin
45
45
 
46
46
  OPENAI_SSE_DONE = "[DONE]"
47
47
 
@@ -174,6 +174,7 @@ def openai_chat_completions_process_stream(
174
174
  stream_interface: Optional[Union[AgentChunkStreamingInterface, AgentRefreshStreamingInterface]] = None,
175
175
  create_message_id: bool = True,
176
176
  create_message_datetime: bool = True,
177
+ override_tool_call_id: bool = True,
177
178
  ) -> ChatCompletionResponse:
178
179
  """Process a streaming completion response, and return a ChatCompletionRequest at the end.
179
180
 
@@ -244,6 +245,14 @@ def openai_chat_completions_process_stream(
244
245
  ):
245
246
  assert isinstance(chat_completion_chunk, ChatCompletionChunkResponse), type(chat_completion_chunk)
246
247
 
248
+ # NOTE: this assumes that the tool call ID will only appear in one of the chunks during the stream
249
+ if override_tool_call_id:
250
+ for choice in chat_completion_chunk.choices:
251
+ if choice.delta.tool_calls and len(choice.delta.tool_calls) > 0:
252
+ for tool_call in choice.delta.tool_calls:
253
+ if tool_call.id is not None:
254
+ tool_call.id = get_tool_call_id()
255
+
247
256
  if stream_interface:
248
257
  if isinstance(stream_interface, AgentChunkStreamingInterface):
249
258
  stream_interface.process_chunk(
@@ -290,6 +299,7 @@ def openai_chat_completions_process_stream(
290
299
  else:
291
300
  accum_message.content += content_delta
292
301
 
302
+ # TODO(charles) make sure this works for parallel tool calling?
293
303
  if message_delta.tool_calls is not None:
294
304
  tool_calls_delta = message_delta.tool_calls
295
305
 
@@ -340,7 +350,7 @@ def openai_chat_completions_process_stream(
340
350
  assert all([c.finish_reason != TEMP_STREAM_FINISH_REASON for c in chat_completion_response.choices])
341
351
  assert all(
342
352
  [
343
- all([tc != TEMP_STREAM_TOOL_CALL_ID for tc in c.message.tool_calls]) if c.message.tool_calls else True
353
+ all([tc.id != TEMP_STREAM_TOOL_CALL_ID for tc in c.message.tool_calls]) if c.message.tool_calls else True
344
354
  for c in chat_completion_response.choices
345
355
  ]
346
356
  )
@@ -78,12 +78,14 @@ class FunctionCall(BaseModel):
78
78
 
79
79
  name: str
80
80
  arguments: str
81
+ function_call_id: str
81
82
 
82
83
 
83
84
  class FunctionCallDelta(BaseModel):
84
85
 
85
86
  name: Optional[str]
86
87
  arguments: Optional[str]
88
+ function_call_id: Optional[str]
87
89
 
88
90
  # NOTE: this is a workaround to exclude None values from the JSON dump,
89
91
  # since the OpenAI style of returning chunks doesn't include keys with null values
@@ -129,10 +131,10 @@ class FunctionCallMessage(LettaMessage):
129
131
  @classmethod
130
132
  def validate_function_call(cls, v):
131
133
  if isinstance(v, dict):
132
- if "name" in v and "arguments" in v:
133
- return FunctionCall(name=v["name"], arguments=v["arguments"])
134
- elif "name" in v or "arguments" in v:
135
- return FunctionCallDelta(name=v.get("name"), arguments=v.get("arguments"))
134
+ if "name" in v and "arguments" in v and "function_call_id" in v:
135
+ return FunctionCall(name=v["name"], arguments=v["arguments"], function_call_id=v["function_call_id"])
136
+ elif "name" in v or "arguments" in v or "function_call_id" in v:
137
+ return FunctionCallDelta(name=v.get("name"), arguments=v.get("arguments"), function_call_id=v.get("function_call_id"))
136
138
  else:
137
139
  raise ValueError("function_call must contain either 'name' or 'arguments'")
138
140
  return v
@@ -147,11 +149,13 @@ class FunctionReturn(LettaMessage):
147
149
  status (Literal["success", "error"]): The status of the function call
148
150
  id (str): The ID of the message
149
151
  date (datetime): The date the message was created in ISO format
152
+ function_call_id (str): A unique identifier for the function call that generated this message
150
153
  """
151
154
 
152
155
  message_type: Literal["function_return"] = "function_return"
153
156
  function_return: str
154
157
  status: Literal["success", "error"]
158
+ function_call_id: str
155
159
 
156
160
 
157
161
  # Legacy Letta API had an additional type "assistant_message" and the "function_call" was a formatted string
@@ -178,6 +178,7 @@ class Message(BaseMessage):
178
178
  function_call=FunctionCall(
179
179
  name=tool_call.function.name,
180
180
  arguments=tool_call.function.arguments,
181
+ function_call_id=tool_call.id,
181
182
  ),
182
183
  )
183
184
  )
@@ -203,6 +204,7 @@ class Message(BaseMessage):
203
204
  raise ValueError(f"Invalid status: {status}")
204
205
  except json.JSONDecodeError:
205
206
  raise ValueError(f"Failed to decode function return: {self.text}")
207
+ assert self.tool_call_id is not None
206
208
  messages.append(
207
209
  # TODO make sure this is what the API returns
208
210
  # function_return may not match exactly...
@@ -211,6 +213,7 @@ class Message(BaseMessage):
211
213
  date=self.created_at,
212
214
  function_return=self.text,
213
215
  status=status_enum,
216
+ function_call_id=self.tool_call_id,
214
217
  )
215
218
  )
216
219
  elif self.role == MessageRole.user:
@@ -531,7 +531,11 @@ class StreamingServerInterface(AgentChunkStreamingInterface):
531
531
  processed_chunk = FunctionCallMessage(
532
532
  id=message_id,
533
533
  date=message_date,
534
- function_call=FunctionCallDelta(name=tool_call_delta.get("name"), arguments=tool_call_delta.get("arguments")),
534
+ function_call=FunctionCallDelta(
535
+ name=tool_call_delta.get("name"),
536
+ arguments=tool_call_delta.get("arguments"),
537
+ function_call_id=tool_call_delta.get("id"),
538
+ ),
535
539
  )
536
540
 
537
541
  else:
@@ -548,7 +552,11 @@ class StreamingServerInterface(AgentChunkStreamingInterface):
548
552
  processed_chunk = FunctionCallMessage(
549
553
  id=message_id,
550
554
  date=message_date,
551
- function_call=FunctionCallDelta(name=tool_call_delta.get("name"), arguments=tool_call_delta.get("arguments")),
555
+ function_call=FunctionCallDelta(
556
+ name=tool_call_delta.get("name"),
557
+ arguments=tool_call_delta.get("arguments"),
558
+ function_call_id=tool_call_delta.get("id"),
559
+ ),
552
560
  )
553
561
 
554
562
  elif choice.finish_reason is not None:
@@ -759,6 +767,7 @@ class StreamingServerInterface(AgentChunkStreamingInterface):
759
767
  function_call=FunctionCall(
760
768
  name=function_call.function.name,
761
769
  arguments=function_call.function.arguments,
770
+ function_call_id=function_call.id,
762
771
  ),
763
772
  )
764
773
 
@@ -786,21 +795,25 @@ class StreamingServerInterface(AgentChunkStreamingInterface):
786
795
  elif msg.startswith("Success: "):
787
796
  msg = msg.replace("Success: ", "")
788
797
  # new_message = {"function_return": msg, "status": "success"}
798
+ assert msg_obj.tool_call_id is not None
789
799
  new_message = FunctionReturn(
790
800
  id=msg_obj.id,
791
801
  date=msg_obj.created_at,
792
802
  function_return=msg,
793
803
  status="success",
804
+ function_call_id=msg_obj.tool_call_id,
794
805
  )
795
806
 
796
807
  elif msg.startswith("Error: "):
797
808
  msg = msg.replace("Error: ", "")
798
809
  # new_message = {"function_return": msg, "status": "error"}
810
+ assert msg_obj.tool_call_id is not None
799
811
  new_message = FunctionReturn(
800
812
  id=msg_obj.id,
801
813
  date=msg_obj.created_at,
802
814
  function_return=msg,
803
815
  status="error",
816
+ function_call_id=msg_obj.tool_call_id,
804
817
  )
805
818
 
806
819
  else:
@@ -488,6 +488,9 @@ def is_utc_datetime(dt: datetime) -> bool:
488
488
 
489
489
 
490
490
  def get_tool_call_id() -> str:
491
+ # TODO(sarah) make this a slug-style string?
492
+ # e.g. OpenAI: "call_xlIfzR1HqAW7xJPa3ExJSg3C"
493
+ # or similar to agents: "call-xlIfzR1HqAW7xJPa3ExJSg3C"
491
494
  return str(uuid.uuid4())[:TOOL_CALL_ID_MAX_LEN]
492
495
 
493
496
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "letta-nightly"
3
- version = "0.5.0.dev20241019104023"
3
+ version = "0.5.0.dev20241021104213"
4
4
  packages = [
5
5
  {include = "letta"}
6
6
  ]