langroid 0.31.3__tar.gz → 0.32.0__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.
Files changed (161) hide show
  1. {langroid-0.31.3 → langroid-0.32.0}/PKG-INFO +1 -1
  2. {langroid-0.31.3 → langroid-0.32.0}/langroid/language_models/openai_gpt.py +28 -2
  3. {langroid-0.31.3 → langroid-0.32.0}/langroid/language_models/utils.py +4 -0
  4. {langroid-0.31.3 → langroid-0.32.0}/pyproject.toml +1 -1
  5. {langroid-0.31.3 → langroid-0.32.0}/LICENSE +0 -0
  6. {langroid-0.31.3 → langroid-0.32.0}/README.md +0 -0
  7. {langroid-0.31.3 → langroid-0.32.0}/langroid/__init__.py +0 -0
  8. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/.chainlit/config.toml +0 -0
  9. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/.chainlit/translations/bn.json +0 -0
  10. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/.chainlit/translations/en-US.json +0 -0
  11. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/.chainlit/translations/gu.json +0 -0
  12. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/.chainlit/translations/he-IL.json +0 -0
  13. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/.chainlit/translations/hi.json +0 -0
  14. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/.chainlit/translations/kn.json +0 -0
  15. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/.chainlit/translations/ml.json +0 -0
  16. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/.chainlit/translations/mr.json +0 -0
  17. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/.chainlit/translations/ta.json +0 -0
  18. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/.chainlit/translations/te.json +0 -0
  19. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/.chainlit/translations/zh-CN.json +0 -0
  20. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/__init__.py +0 -0
  21. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/base.py +0 -0
  22. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/batch.py +0 -0
  23. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/callbacks/__init__.py +0 -0
  24. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/callbacks/chainlit.py +0 -0
  25. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/chat_agent.py +0 -0
  26. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/chat_document.py +0 -0
  27. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/helpers.py +0 -0
  28. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/junk +0 -0
  29. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/openai_assistant.py +0 -0
  30. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/__init__.py +0 -0
  31. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/arangodb/__init__.py +0 -0
  32. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/arangodb/arangodb_agent.py +0 -0
  33. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/arangodb/system_messages.py +0 -0
  34. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/arangodb/tools.py +0 -0
  35. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/arangodb/utils.py +0 -0
  36. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/doc_chat_agent.py +0 -0
  37. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/lance_doc_chat_agent.py +0 -0
  38. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/lance_rag/__init__.py +0 -0
  39. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/lance_rag/critic_agent.py +0 -0
  40. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/lance_rag/lance_rag_task.py +0 -0
  41. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/lance_rag/query_planner_agent.py +0 -0
  42. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/lance_tools.py +0 -0
  43. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/neo4j/__init__.py +0 -0
  44. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/neo4j/csv_kg_chat.py +0 -0
  45. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/neo4j/neo4j_chat_agent.py +0 -0
  46. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/neo4j/system_messages.py +0 -0
  47. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/neo4j/tools.py +0 -0
  48. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/relevance_extractor_agent.py +0 -0
  49. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/retriever_agent.py +0 -0
  50. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/sql/__init__.py +0 -0
  51. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/sql/sql_chat_agent.py +0 -0
  52. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/sql/utils/__init__.py +0 -0
  53. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/sql/utils/description_extractors.py +0 -0
  54. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/sql/utils/populate_metadata.py +0 -0
  55. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/sql/utils/system_message.py +0 -0
  56. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/sql/utils/tools.py +0 -0
  57. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/special/table_chat_agent.py +0 -0
  58. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/structured_message.py +0 -0
  59. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/task.py +0 -0
  60. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/tool_message.py +0 -0
  61. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/tools/__init__.py +0 -0
  62. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/tools/duckduckgo_search_tool.py +0 -0
  63. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/tools/file_tools.py +0 -0
  64. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/tools/google_search_tool.py +0 -0
  65. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/tools/metaphor_search_tool.py +0 -0
  66. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/tools/orchestration.py +0 -0
  67. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/tools/recipient_tool.py +0 -0
  68. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/tools/retrieval_tool.py +0 -0
  69. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/tools/rewind_tool.py +0 -0
  70. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/tools/segment_extract_tool.py +0 -0
  71. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/typed_task.py +0 -0
  72. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent/xml_tool_message.py +0 -0
  73. {langroid-0.31.3 → langroid-0.32.0}/langroid/agent_config.py +0 -0
  74. {langroid-0.31.3 → langroid-0.32.0}/langroid/cachedb/__init__.py +0 -0
  75. {langroid-0.31.3 → langroid-0.32.0}/langroid/cachedb/base.py +0 -0
  76. {langroid-0.31.3 → langroid-0.32.0}/langroid/cachedb/momento_cachedb.py +0 -0
  77. {langroid-0.31.3 → langroid-0.32.0}/langroid/cachedb/redis_cachedb.py +0 -0
  78. {langroid-0.31.3 → langroid-0.32.0}/langroid/embedding_models/__init__.py +0 -0
  79. {langroid-0.31.3 → langroid-0.32.0}/langroid/embedding_models/base.py +0 -0
  80. {langroid-0.31.3 → langroid-0.32.0}/langroid/embedding_models/clustering.py +0 -0
  81. {langroid-0.31.3 → langroid-0.32.0}/langroid/embedding_models/models.py +0 -0
  82. {langroid-0.31.3 → langroid-0.32.0}/langroid/embedding_models/protoc/__init__.py +0 -0
  83. {langroid-0.31.3 → langroid-0.32.0}/langroid/embedding_models/protoc/embeddings.proto +0 -0
  84. {langroid-0.31.3 → langroid-0.32.0}/langroid/embedding_models/protoc/embeddings_pb2.py +0 -0
  85. {langroid-0.31.3 → langroid-0.32.0}/langroid/embedding_models/protoc/embeddings_pb2.pyi +0 -0
  86. {langroid-0.31.3 → langroid-0.32.0}/langroid/embedding_models/protoc/embeddings_pb2_grpc.py +0 -0
  87. {langroid-0.31.3 → langroid-0.32.0}/langroid/embedding_models/remote_embeds.py +0 -0
  88. {langroid-0.31.3 → langroid-0.32.0}/langroid/exceptions.py +0 -0
  89. {langroid-0.31.3 → langroid-0.32.0}/langroid/experimental/team-save.py +0 -0
  90. {langroid-0.31.3 → langroid-0.32.0}/langroid/language_models/.chainlit/config.toml +0 -0
  91. {langroid-0.31.3 → langroid-0.32.0}/langroid/language_models/.chainlit/translations/en-US.json +0 -0
  92. {langroid-0.31.3 → langroid-0.32.0}/langroid/language_models/__init__.py +0 -0
  93. {langroid-0.31.3 → langroid-0.32.0}/langroid/language_models/azure_openai.py +0 -0
  94. {langroid-0.31.3 → langroid-0.32.0}/langroid/language_models/base.py +0 -0
  95. {langroid-0.31.3 → langroid-0.32.0}/langroid/language_models/config.py +0 -0
  96. {langroid-0.31.3 → langroid-0.32.0}/langroid/language_models/mock_lm.py +0 -0
  97. {langroid-0.31.3 → langroid-0.32.0}/langroid/language_models/prompt_formatter/__init__.py +0 -0
  98. {langroid-0.31.3 → langroid-0.32.0}/langroid/language_models/prompt_formatter/base.py +0 -0
  99. {langroid-0.31.3 → langroid-0.32.0}/langroid/language_models/prompt_formatter/hf_formatter.py +0 -0
  100. {langroid-0.31.3 → langroid-0.32.0}/langroid/language_models/prompt_formatter/llama2_formatter.py +0 -0
  101. {langroid-0.31.3 → langroid-0.32.0}/langroid/mytypes.py +0 -0
  102. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/__init__.py +0 -0
  103. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/agent_chats.py +0 -0
  104. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/code-parsing.md +0 -0
  105. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/code_parser.py +0 -0
  106. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/config.py +0 -0
  107. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/document_parser.py +0 -0
  108. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/image_text.py +0 -0
  109. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/para_sentence_split.py +0 -0
  110. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/parse_json.py +0 -0
  111. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/parser.py +0 -0
  112. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/repo_loader.py +0 -0
  113. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/routing.py +0 -0
  114. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/search.py +0 -0
  115. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/spider.py +0 -0
  116. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/table_loader.py +0 -0
  117. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/url_loader.py +0 -0
  118. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/url_loader_cookies.py +0 -0
  119. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/urls.py +0 -0
  120. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/utils.py +0 -0
  121. {langroid-0.31.3 → langroid-0.32.0}/langroid/parsing/web_search.py +0 -0
  122. {langroid-0.31.3 → langroid-0.32.0}/langroid/prompts/__init__.py +0 -0
  123. {langroid-0.31.3 → langroid-0.32.0}/langroid/prompts/chat-gpt4-system-prompt.md +0 -0
  124. {langroid-0.31.3 → langroid-0.32.0}/langroid/prompts/dialog.py +0 -0
  125. {langroid-0.31.3 → langroid-0.32.0}/langroid/prompts/prompts_config.py +0 -0
  126. {langroid-0.31.3 → langroid-0.32.0}/langroid/prompts/templates.py +0 -0
  127. {langroid-0.31.3 → langroid-0.32.0}/langroid/py.typed +0 -0
  128. {langroid-0.31.3 → langroid-0.32.0}/langroid/pydantic_v1/__init__.py +0 -0
  129. {langroid-0.31.3 → langroid-0.32.0}/langroid/pydantic_v1/main.py +0 -0
  130. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/.chainlit/config.toml +0 -0
  131. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/.chainlit/translations/en-US.json +0 -0
  132. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/__init__.py +0 -0
  133. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/algorithms/__init__.py +0 -0
  134. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/algorithms/graph.py +0 -0
  135. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/configuration.py +0 -0
  136. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/constants.py +0 -0
  137. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/docker.py +0 -0
  138. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/git_utils.py +0 -0
  139. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/globals.py +0 -0
  140. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/llms/__init__.py +0 -0
  141. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/llms/strings.py +0 -0
  142. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/logging.py +0 -0
  143. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/object_registry.py +0 -0
  144. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/output/__init__.py +0 -0
  145. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/output/citations.py +0 -0
  146. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/output/printing.py +0 -0
  147. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/output/status.py +0 -0
  148. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/pandas_utils.py +0 -0
  149. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/pydantic_utils.py +0 -0
  150. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/system.py +0 -0
  151. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/types.py +0 -0
  152. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/web/__init__.py +0 -0
  153. {langroid-0.31.3 → langroid-0.32.0}/langroid/utils/web/login.py +0 -0
  154. {langroid-0.31.3 → langroid-0.32.0}/langroid/vector_store/__init__.py +0 -0
  155. {langroid-0.31.3 → langroid-0.32.0}/langroid/vector_store/base.py +0 -0
  156. {langroid-0.31.3 → langroid-0.32.0}/langroid/vector_store/chromadb.py +0 -0
  157. {langroid-0.31.3 → langroid-0.32.0}/langroid/vector_store/lancedb.py +0 -0
  158. {langroid-0.31.3 → langroid-0.32.0}/langroid/vector_store/meilisearch.py +0 -0
  159. {langroid-0.31.3 → langroid-0.32.0}/langroid/vector_store/momento.py +0 -0
  160. {langroid-0.31.3 → langroid-0.32.0}/langroid/vector_store/qdrant_cloud.py +0 -0
  161. {langroid-0.31.3 → langroid-0.32.0}/langroid/vector_store/qdrantdb.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langroid
3
- Version: 0.31.3
3
+ Version: 0.32.0
4
4
  Summary: Harness LLMs with Multi-Agent Programming
5
5
  License: MIT
6
6
  Author: Prasad Chalasani
@@ -67,6 +67,7 @@ if "OLLAMA_HOST" in os.environ:
67
67
  else:
68
68
  OLLAMA_BASE_URL = "http://localhost:11434/v1"
69
69
 
70
+ DEEPSEEK_BASE_URL = "https://api.deepseek.com/v1"
70
71
  OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1"
71
72
  GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/openai"
72
73
  GLHF_BASE_URL = "https://glhf.chat/api/openai/v1"
@@ -77,6 +78,10 @@ VLLM_API_KEY = os.environ.get("VLLM_API_KEY", DUMMY_API_KEY)
77
78
  LLAMACPP_API_KEY = os.environ.get("LLAMA_API_KEY", DUMMY_API_KEY)
78
79
 
79
80
 
81
+ class DeepSeekModel(str, Enum):
82
+ DEEPSEEK = "deepseek/deepseek-chat"
83
+
84
+
80
85
  class AnthropicModel(str, Enum):
81
86
  """Enum for Anthropic models"""
82
87
 
@@ -130,6 +135,11 @@ _context_length: Dict[str, int] = {
130
135
  AnthropicModel.CLAUDE_3_OPUS: 200_000,
131
136
  AnthropicModel.CLAUDE_3_SONNET: 200_000,
132
137
  AnthropicModel.CLAUDE_3_HAIKU: 200_000,
138
+ DeepSeekModel.DEEPSEEK: 64_000,
139
+ GeminiModel.GEMINI_2_FLASH: 1_000_000,
140
+ GeminiModel.GEMINI_1_5_FLASH: 1_000_000,
141
+ GeminiModel.GEMINI_1_5_FLASH_8B: 1_000_000,
142
+ GeminiModel.GEMINI_1_5_PRO: 2_000_000,
133
143
  }
134
144
 
135
145
  _cost_per_1k_tokens: Dict[str, Tuple[float, float]] = {
@@ -146,6 +156,8 @@ _cost_per_1k_tokens: Dict[str, Tuple[float, float]] = {
146
156
  AnthropicModel.CLAUDE_3_OPUS: (0.015, 0.075),
147
157
  AnthropicModel.CLAUDE_3_SONNET: (0.003, 0.015),
148
158
  AnthropicModel.CLAUDE_3_HAIKU: (0.00025, 0.00125),
159
+ DeepSeekModel.DEEPSEEK: (0.00014, 0.00028),
160
+ # Gemini models have complex pricing based on input-len
149
161
  }
150
162
 
151
163
 
@@ -444,6 +456,8 @@ class OpenAIGPT(LanguageModel):
444
456
  config = config.copy()
445
457
  super().__init__(config)
446
458
  self.config: OpenAIGPTConfig = config
459
+ # save original model name such as `provider/model` before
460
+ # we strip out the `provider`
447
461
  self.chat_model_orig = self.config.chat_model
448
462
 
449
463
  # Run the first time the model is used
@@ -569,6 +583,7 @@ class OpenAIGPT(LanguageModel):
569
583
  self.is_groq = self.config.chat_model.startswith("groq/")
570
584
  self.is_cerebras = self.config.chat_model.startswith("cerebras/")
571
585
  self.is_gemini = self.is_gemini_model()
586
+ self.is_deepseek = self.is_deepseek_model()
572
587
  self.is_glhf = self.config.chat_model.startswith("glhf/")
573
588
  self.is_openrouter = self.config.chat_model.startswith("openrouter/")
574
589
 
@@ -609,6 +624,10 @@ class OpenAIGPT(LanguageModel):
609
624
  )
610
625
  self.api_key = os.getenv("OPENROUTER_API_KEY", DUMMY_API_KEY)
611
626
  self.api_base = OPENROUTER_BASE_URL
627
+ elif self.is_deepseek:
628
+ self.config.chat_model = self.config.chat_model.replace("deepseek/", "")
629
+ self.api_base = DEEPSEEK_BASE_URL
630
+ self.api_key = os.getenv("DEEPSEEK_API_KEY", DUMMY_API_KEY)
612
631
 
613
632
  self.client = OpenAI(
614
633
  api_key=self.api_key,
@@ -699,6 +718,13 @@ class OpenAIGPT(LanguageModel):
699
718
  "gemini/"
700
719
  )
701
720
 
721
+ def is_deepseek_model(self) -> bool:
722
+ deepseek_models = [e.value for e in DeepSeekModel]
723
+ return (
724
+ self.chat_model_orig in deepseek_models
725
+ or self.chat_model_orig.startswith("deepseek/")
726
+ )
727
+
702
728
  def requires_first_user_message(self) -> bool:
703
729
  """
704
730
  Does the chat_model require a non-empty first user message?
@@ -711,7 +737,7 @@ class OpenAIGPT(LanguageModel):
711
737
  """
712
738
  List of params that are not supported by the current model
713
739
  """
714
- match self.config.chat_model:
740
+ match self.chat_model_orig:
715
741
  case OpenAIChatModel.O1_MINI | OpenAIChatModel.O1_PREVIEW:
716
742
  return ["temperature", "stream"]
717
743
  case _:
@@ -764,7 +790,7 @@ class OpenAIGPT(LanguageModel):
764
790
  models/endpoints.
765
791
  Get it from the dict, otherwise fail-over to general method
766
792
  """
767
- return _cost_per_1k_tokens.get(self.config.chat_model, super().chat_cost())
793
+ return _cost_per_1k_tokens.get(self.chat_model_orig, super().chat_cost())
768
794
 
769
795
  def set_stream(self, stream: bool) -> bool:
770
796
  """Enable or disable streaming output from API.
@@ -53,6 +53,10 @@ def retry_with_exponential_backoff(
53
53
  logger.error(f"OpenAI API request failed with error: {e}.")
54
54
  raise e
55
55
 
56
+ except openai.UnprocessableEntityError as e:
57
+ logger.error(f"OpenAI API request failed with error: {e}.")
58
+ raise e
59
+
56
60
  # Retry on specified errors
57
61
  except errors as e:
58
62
  # Increment retries
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "langroid"
3
- version = "0.31.3"
3
+ version = "0.32.0"
4
4
  description = "Harness LLMs with Multi-Agent Programming"
5
5
  authors = ["Prasad Chalasani <pchalasani@gmail.com>"]
6
6
  readme = "README.md"
File without changes
File without changes
File without changes
File without changes
File without changes