langroid 0.15.2__tar.gz → 0.16.1__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 (144) hide show
  1. {langroid-0.15.2 → langroid-0.16.1}/PKG-INFO +7 -2
  2. {langroid-0.15.2 → langroid-0.16.1}/README.md +5 -0
  3. {langroid-0.15.2 → langroid-0.16.1}/langroid/language_models/openai_gpt.py +58 -1
  4. {langroid-0.15.2 → langroid-0.16.1}/pyproject.toml +2 -2
  5. {langroid-0.15.2 → langroid-0.16.1}/LICENSE +0 -0
  6. {langroid-0.15.2 → langroid-0.16.1}/langroid/__init__.py +0 -0
  7. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/__init__.py +0 -0
  8. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/base.py +0 -0
  9. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/batch.py +0 -0
  10. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/callbacks/__init__.py +0 -0
  11. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/callbacks/chainlit.py +0 -0
  12. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/chat_agent.py +0 -0
  13. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/chat_document.py +0 -0
  14. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/helpers.py +0 -0
  15. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/junk +0 -0
  16. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/openai_assistant.py +0 -0
  17. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/__init__.py +0 -0
  18. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/doc_chat_agent.py +0 -0
  19. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/lance_doc_chat_agent.py +0 -0
  20. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/lance_rag/__init__.py +0 -0
  21. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/lance_rag/critic_agent.py +0 -0
  22. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/lance_rag/lance_rag_task.py +0 -0
  23. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/lance_rag/query_planner_agent.py +0 -0
  24. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/lance_tools.py +0 -0
  25. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/neo4j/__init__.py +0 -0
  26. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/neo4j/csv_kg_chat.py +0 -0
  27. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/neo4j/neo4j_chat_agent.py +0 -0
  28. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/neo4j/utils/__init__.py +0 -0
  29. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/neo4j/utils/system_message.py +0 -0
  30. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/relevance_extractor_agent.py +0 -0
  31. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/retriever_agent.py +0 -0
  32. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/sql/__init__.py +0 -0
  33. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/sql/sql_chat_agent.py +0 -0
  34. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/sql/utils/__init__.py +0 -0
  35. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/sql/utils/description_extractors.py +0 -0
  36. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/sql/utils/populate_metadata.py +0 -0
  37. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/sql/utils/system_message.py +0 -0
  38. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/sql/utils/tools.py +0 -0
  39. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/special/table_chat_agent.py +0 -0
  40. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/structured_message.py +0 -0
  41. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/task.py +0 -0
  42. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tool_message.py +0 -0
  43. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tools/__init__.py +0 -0
  44. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tools/duckduckgo_search_tool.py +0 -0
  45. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tools/extract_tool.py +0 -0
  46. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tools/generator_tool.py +0 -0
  47. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tools/google_search_tool.py +0 -0
  48. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tools/metaphor_search_tool.py +0 -0
  49. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tools/note_tool.py +0 -0
  50. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tools/orchestration.py +0 -0
  51. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tools/recipient_tool.py +0 -0
  52. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tools/retrieval_tool.py +0 -0
  53. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tools/rewind_tool.py +0 -0
  54. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tools/run_python_code.py +0 -0
  55. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/tools/segment_extract_tool.py +0 -0
  56. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent/typed_task.py +0 -0
  57. {langroid-0.15.2 → langroid-0.16.1}/langroid/agent_config.py +0 -0
  58. {langroid-0.15.2 → langroid-0.16.1}/langroid/cachedb/__init__.py +0 -0
  59. {langroid-0.15.2 → langroid-0.16.1}/langroid/cachedb/base.py +0 -0
  60. {langroid-0.15.2 → langroid-0.16.1}/langroid/cachedb/momento_cachedb.py +0 -0
  61. {langroid-0.15.2 → langroid-0.16.1}/langroid/cachedb/redis_cachedb.py +0 -0
  62. {langroid-0.15.2 → langroid-0.16.1}/langroid/embedding_models/__init__.py +0 -0
  63. {langroid-0.15.2 → langroid-0.16.1}/langroid/embedding_models/base.py +0 -0
  64. {langroid-0.15.2 → langroid-0.16.1}/langroid/embedding_models/clustering.py +0 -0
  65. {langroid-0.15.2 → langroid-0.16.1}/langroid/embedding_models/models.py +0 -0
  66. {langroid-0.15.2 → langroid-0.16.1}/langroid/embedding_models/protoc/__init__.py +0 -0
  67. {langroid-0.15.2 → langroid-0.16.1}/langroid/embedding_models/protoc/embeddings.proto +0 -0
  68. {langroid-0.15.2 → langroid-0.16.1}/langroid/embedding_models/protoc/embeddings_pb2.py +0 -0
  69. {langroid-0.15.2 → langroid-0.16.1}/langroid/embedding_models/protoc/embeddings_pb2.pyi +0 -0
  70. {langroid-0.15.2 → langroid-0.16.1}/langroid/embedding_models/protoc/embeddings_pb2_grpc.py +0 -0
  71. {langroid-0.15.2 → langroid-0.16.1}/langroid/embedding_models/remote_embeds.py +0 -0
  72. {langroid-0.15.2 → langroid-0.16.1}/langroid/exceptions.py +0 -0
  73. {langroid-0.15.2 → langroid-0.16.1}/langroid/language_models/.chainlit/config.toml +0 -0
  74. {langroid-0.15.2 → langroid-0.16.1}/langroid/language_models/.chainlit/translations/en-US.json +0 -0
  75. {langroid-0.15.2 → langroid-0.16.1}/langroid/language_models/__init__.py +0 -0
  76. {langroid-0.15.2 → langroid-0.16.1}/langroid/language_models/azure_openai.py +0 -0
  77. {langroid-0.15.2 → langroid-0.16.1}/langroid/language_models/base.py +0 -0
  78. {langroid-0.15.2 → langroid-0.16.1}/langroid/language_models/config.py +0 -0
  79. {langroid-0.15.2 → langroid-0.16.1}/langroid/language_models/mock_lm.py +0 -0
  80. {langroid-0.15.2 → langroid-0.16.1}/langroid/language_models/prompt_formatter/__init__.py +0 -0
  81. {langroid-0.15.2 → langroid-0.16.1}/langroid/language_models/prompt_formatter/base.py +0 -0
  82. {langroid-0.15.2 → langroid-0.16.1}/langroid/language_models/prompt_formatter/hf_formatter.py +0 -0
  83. {langroid-0.15.2 → langroid-0.16.1}/langroid/language_models/prompt_formatter/llama2_formatter.py +0 -0
  84. {langroid-0.15.2 → langroid-0.16.1}/langroid/language_models/utils.py +0 -0
  85. {langroid-0.15.2 → langroid-0.16.1}/langroid/mytypes.py +0 -0
  86. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/__init__.py +0 -0
  87. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/agent_chats.py +0 -0
  88. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/code-parsing.md +0 -0
  89. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/code_parser.py +0 -0
  90. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/config.py +0 -0
  91. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/document_parser.py +0 -0
  92. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/image_text.py +0 -0
  93. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/para_sentence_split.py +0 -0
  94. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/parse_json.py +0 -0
  95. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/parser.py +0 -0
  96. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/repo_loader.py +0 -0
  97. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/routing.py +0 -0
  98. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/search.py +0 -0
  99. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/spider.py +0 -0
  100. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/table_loader.py +0 -0
  101. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/url_loader.py +0 -0
  102. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/url_loader_cookies.py +0 -0
  103. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/urls.py +0 -0
  104. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/utils.py +0 -0
  105. {langroid-0.15.2 → langroid-0.16.1}/langroid/parsing/web_search.py +0 -0
  106. {langroid-0.15.2 → langroid-0.16.1}/langroid/prompts/__init__.py +0 -0
  107. {langroid-0.15.2 → langroid-0.16.1}/langroid/prompts/chat-gpt4-system-prompt.md +0 -0
  108. {langroid-0.15.2 → langroid-0.16.1}/langroid/prompts/dialog.py +0 -0
  109. {langroid-0.15.2 → langroid-0.16.1}/langroid/prompts/prompts_config.py +0 -0
  110. {langroid-0.15.2 → langroid-0.16.1}/langroid/prompts/templates.py +0 -0
  111. {langroid-0.15.2 → langroid-0.16.1}/langroid/py.typed +0 -0
  112. {langroid-0.15.2 → langroid-0.16.1}/langroid/pydantic_v1/__init__.py +0 -0
  113. {langroid-0.15.2 → langroid-0.16.1}/langroid/pydantic_v1/main.py +0 -0
  114. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/.chainlit/config.toml +0 -0
  115. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/.chainlit/translations/en-US.json +0 -0
  116. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/__init__.py +0 -0
  117. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/algorithms/__init__.py +0 -0
  118. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/algorithms/graph.py +0 -0
  119. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/configuration.py +0 -0
  120. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/constants.py +0 -0
  121. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/docker.py +0 -0
  122. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/globals.py +0 -0
  123. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/llms/__init__.py +0 -0
  124. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/llms/strings.py +0 -0
  125. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/logging.py +0 -0
  126. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/object_registry.py +0 -0
  127. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/output/__init__.py +0 -0
  128. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/output/citations.py +0 -0
  129. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/output/printing.py +0 -0
  130. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/output/status.py +0 -0
  131. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/pandas_utils.py +0 -0
  132. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/pydantic_utils.py +0 -0
  133. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/system.py +0 -0
  134. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/types.py +0 -0
  135. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/web/__init__.py +0 -0
  136. {langroid-0.15.2 → langroid-0.16.1}/langroid/utils/web/login.py +0 -0
  137. {langroid-0.15.2 → langroid-0.16.1}/langroid/vector_store/__init__.py +0 -0
  138. {langroid-0.15.2 → langroid-0.16.1}/langroid/vector_store/base.py +0 -0
  139. {langroid-0.15.2 → langroid-0.16.1}/langroid/vector_store/chromadb.py +0 -0
  140. {langroid-0.15.2 → langroid-0.16.1}/langroid/vector_store/lancedb.py +0 -0
  141. {langroid-0.15.2 → langroid-0.16.1}/langroid/vector_store/meilisearch.py +0 -0
  142. {langroid-0.15.2 → langroid-0.16.1}/langroid/vector_store/momento.py +0 -0
  143. {langroid-0.15.2 → langroid-0.16.1}/langroid/vector_store/qdrant_cloud.py +0 -0
  144. {langroid-0.15.2 → langroid-0.16.1}/langroid/vector_store/qdrantdb.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langroid
3
- Version: 0.15.2
3
+ Version: 0.16.1
4
4
  Summary: Harness LLMs with Multi-Agent Programming
5
5
  License: MIT
6
6
  Author: Prasad Chalasani
@@ -66,7 +66,7 @@ Requires-Dist: neo4j (>=5.14.1,<6.0.0) ; extra == "all" or extra == "neo4j"
66
66
  Requires-Dist: nest-asyncio (>=1.6.0,<2.0.0)
67
67
  Requires-Dist: nltk (>=3.8.1,<4.0.0)
68
68
  Requires-Dist: onnxruntime (>=1.16.1,<2.0.0)
69
- Requires-Dist: openai (>=1.14.0,<2.0.0)
69
+ Requires-Dist: openai (>=1.45.0,<2.0.0)
70
70
  Requires-Dist: pandas (>=2.0.3,<3.0.0)
71
71
  Requires-Dist: pdf2image (>=1.17.0,<2.0.0) ; extra == "doc-chat" or extra == "all" or extra == "pdf-parsers"
72
72
  Requires-Dist: pdfplumber (>=0.10.2,<0.11.0) ; extra == "doc-chat" or extra == "all" or extra == "pdf-parsers"
@@ -242,6 +242,11 @@ teacher_task.run()
242
242
  <details>
243
243
  <summary> <b>Click to expand</b></summary>
244
244
 
245
+ - **Sep 2024:**
246
+ - **[0.16.0](https://github.com/langroid/langroid/releases/tag/0.16.0)** Support for OpenAI `o1-mini` and `o1-preview` models.
247
+ - **[0.15.0](https://github.com/langroid/langroid/releases/tag/0.15.0)** Cerebras API support -- run llama-3.1 models hosted on Cerebras Cloud (very fast inference).
248
+ - **[0.14.0](https://github.com/langroid/langroid/releases/tag/0.14.0)** `DocChatAgent` uses Reciprocal Rank Fusion (RRF) to rank chunks retrieved by different methods.
249
+ - **[0.12.0](https://github.com/langroid/langroid/releases/tag/0.12.0)** `run_batch_task` new option -- `stop_on_first_result` - allows termination of batch as soon as any task returns a result.
245
250
  - **Aug 2024:**
246
251
  - **[0.11.0](https://github.com/langroid/langroid/releases/tag/0.11.0)** Polymorphic `Task.run(), Task.run_async`.
247
252
  - **[0.10.0](https://github.com/langroid/langroid/releases/tag/0.10.0)** Allow tool handlers to return arbitrary result type, including other tools.
@@ -134,6 +134,11 @@ teacher_task.run()
134
134
  <details>
135
135
  <summary> <b>Click to expand</b></summary>
136
136
 
137
+ - **Sep 2024:**
138
+ - **[0.16.0](https://github.com/langroid/langroid/releases/tag/0.16.0)** Support for OpenAI `o1-mini` and `o1-preview` models.
139
+ - **[0.15.0](https://github.com/langroid/langroid/releases/tag/0.15.0)** Cerebras API support -- run llama-3.1 models hosted on Cerebras Cloud (very fast inference).
140
+ - **[0.14.0](https://github.com/langroid/langroid/releases/tag/0.14.0)** `DocChatAgent` uses Reciprocal Rank Fusion (RRF) to rank chunks retrieved by different methods.
141
+ - **[0.12.0](https://github.com/langroid/langroid/releases/tag/0.12.0)** `run_batch_task` new option -- `stop_on_first_result` - allows termination of batch as soon as any task returns a result.
137
142
  - **Aug 2024:**
138
143
  - **[0.11.0](https://github.com/langroid/langroid/releases/tag/0.11.0)** Polymorphic `Task.run(), Task.run_async`.
139
144
  - **[0.10.0](https://github.com/langroid/langroid/releases/tag/0.10.0)** Allow tool handlers to return arbitrary result type, including other tools.
@@ -88,6 +88,8 @@ class OpenAIChatModel(str, Enum):
88
88
  GPT4_TURBO = "gpt-4-turbo"
89
89
  GPT4o = "gpt-4o-2024-08-06"
90
90
  GPT4o_MINI = "gpt-4o-mini"
91
+ O1_PREVIEW = "o1-preview"
92
+ O1_MINI = "o1-mini"
91
93
 
92
94
 
93
95
  class OpenAICompletionModel(str, Enum):
@@ -105,6 +107,8 @@ _context_length: Dict[str, int] = {
105
107
  OpenAIChatModel.GPT4_TURBO: 128_000,
106
108
  OpenAIChatModel.GPT4o: 128_000,
107
109
  OpenAIChatModel.GPT4o_MINI: 128_000,
110
+ OpenAIChatModel.O1_PREVIEW: 128_000,
111
+ OpenAIChatModel.O1_MINI: 128_000,
108
112
  OpenAICompletionModel.TEXT_DA_VINCI_003: 4096,
109
113
  AnthropicModel.CLAUDE_3_5_SONNET: 200_000,
110
114
  AnthropicModel.CLAUDE_3_OPUS: 200_000,
@@ -120,6 +124,8 @@ _cost_per_1k_tokens: Dict[str, Tuple[float, float]] = {
120
124
  OpenAIChatModel.GPT4_TURBO: (0.01, 0.03), # 128K context
121
125
  OpenAIChatModel.GPT4o: (0.0025, 0.010), # 128K context
122
126
  OpenAIChatModel.GPT4o_MINI: (0.00015, 0.0006), # 128K context
127
+ OpenAIChatModel.O1_PREVIEW: (0.015, 0.060), # 128K context
128
+ OpenAIChatModel.O1_MINI: (0.003, 0.012), # 128K context
123
129
  AnthropicModel.CLAUDE_3_5_SONNET: (0.003, 0.015),
124
130
  AnthropicModel.CLAUDE_3_OPUS: (0.015, 0.075),
125
131
  AnthropicModel.CLAUDE_3_SONNET: (0.003, 0.015),
@@ -132,6 +138,8 @@ openAIChatModelPreferenceList = [
132
138
  OpenAIChatModel.GPT4_TURBO,
133
139
  OpenAIChatModel.GPT4,
134
140
  OpenAIChatModel.GPT4o_MINI,
141
+ OpenAIChatModel.O1_MINI,
142
+ OpenAIChatModel.O1_PREVIEW,
135
143
  OpenAIChatModel.GPT3_5_TURBO,
136
144
  ]
137
145
 
@@ -140,6 +148,15 @@ openAICompletionModelPreferenceList = [
140
148
  OpenAICompletionModel.TEXT_DA_VINCI_003,
141
149
  ]
142
150
 
151
+ NON_STREAMING_MODELS = [
152
+ OpenAIChatModel.O1_MINI,
153
+ OpenAIChatModel.O1_PREVIEW,
154
+ ]
155
+
156
+ NON_SYSTEM_MESSAGE_MODELS = [
157
+ OpenAIChatModel.O1_MINI,
158
+ OpenAIChatModel.O1_PREVIEW,
159
+ ]
143
160
 
144
161
  if "OPENAI_API_KEY" in os.environ:
145
162
  try:
@@ -579,6 +596,27 @@ class OpenAIGPT(LanguageModel):
579
596
  openai_completion_models = [e.value for e in OpenAICompletionModel]
580
597
  return self.config.completion_model in openai_completion_models
581
598
 
599
+ def unsupported_params(self) -> List[str]:
600
+ """
601
+ List of params that are not supported by the current model
602
+ """
603
+ match self.config.chat_model:
604
+ case OpenAIChatModel.O1_MINI | OpenAIChatModel.O1_PREVIEW:
605
+ return ["temperature", "stream"]
606
+ case _:
607
+ return []
608
+
609
+ def rename_params(self) -> Dict[str, str]:
610
+ """
611
+ Map of param name -> new name for specific models.
612
+ Currently main troublemaker is o1* series.
613
+ """
614
+ match self.config.chat_model:
615
+ case OpenAIChatModel.O1_MINI | OpenAIChatModel.O1_PREVIEW:
616
+ return {"max_tokens": "max_completion_tokens"}
617
+ case _:
618
+ return {}
619
+
582
620
  def chat_context_length(self) -> int:
583
621
  """
584
622
  Context-length for chat-completion models/endpoints
@@ -623,7 +661,11 @@ class OpenAIGPT(LanguageModel):
623
661
 
624
662
  def get_stream(self) -> bool:
625
663
  """Get streaming status"""
626
- return self.config.stream and settings.stream
664
+ return (
665
+ self.config.stream
666
+ and settings.stream
667
+ and self.config.chat_model not in NON_STREAMING_MODELS
668
+ )
627
669
 
628
670
  @no_type_check
629
671
  def _process_stream_event(
@@ -1421,6 +1463,12 @@ class OpenAIGPT(LanguageModel):
1421
1463
  else:
1422
1464
  llm_messages = messages
1423
1465
 
1466
+ # for models that don't support system msg, change SYSTEM role to USER
1467
+ if self.config.chat_model in NON_SYSTEM_MESSAGE_MODELS:
1468
+ for i, m in enumerate(llm_messages):
1469
+ if m.role == Role.SYSTEM:
1470
+ llm_messages[i].role = Role.USER
1471
+
1424
1472
  # Azure uses different parameters. It uses ``engine`` instead of ``model``
1425
1473
  # and the value should be the deployment_name not ``self.config.chat_model``
1426
1474
  chat_model = self.config.chat_model
@@ -1457,6 +1505,15 @@ class OpenAIGPT(LanguageModel):
1457
1505
  tool_choice=tool_choice,
1458
1506
  )
1459
1507
  )
1508
+ for p in self.unsupported_params():
1509
+ # some models e.g. o1-mini (as of sep 2024) don't support some params,
1510
+ # like temperature and stream, so we need to remove them.
1511
+ args.pop(p, None)
1512
+
1513
+ param_rename_map = self.rename_params()
1514
+ for old_param, new_param in param_rename_map.items():
1515
+ if old_param in args:
1516
+ args[new_param] = args.pop(old_param)
1460
1517
  return args
1461
1518
 
1462
1519
  def _process_chat_completion_response(
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "langroid"
3
- version = "0.15.2"
3
+ version = "0.16.1"
4
4
  description = "Harness LLMs with Multi-Agent Programming"
5
5
  authors = ["Prasad Chalasani <pchalasani@gmail.com>"]
6
6
  readme = "README.md"
@@ -53,7 +53,7 @@ trafilatura = "^1.5.0"
53
53
  halo = "^0.0.31"
54
54
  typer = "^0.9.0"
55
55
  colorlog = "^6.7.0"
56
- openai = "^1.14.0"
56
+ openai = "^1.45.0"
57
57
  tiktoken = "^0.7.0"
58
58
  pygithub = "^1.58.1"
59
59
  pygments = "^2.15.1"
File without changes
File without changes
File without changes
File without changes