langroid 0.1.85__py3-none-any.whl → 0.1.219__py3-none-any.whl

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 (107) hide show
  1. langroid/__init__.py +95 -0
  2. langroid/agent/__init__.py +40 -0
  3. langroid/agent/base.py +222 -91
  4. langroid/agent/batch.py +264 -0
  5. langroid/agent/callbacks/chainlit.py +608 -0
  6. langroid/agent/chat_agent.py +247 -101
  7. langroid/agent/chat_document.py +41 -4
  8. langroid/agent/openai_assistant.py +842 -0
  9. langroid/agent/special/__init__.py +50 -0
  10. langroid/agent/special/doc_chat_agent.py +837 -141
  11. langroid/agent/special/lance_doc_chat_agent.py +258 -0
  12. langroid/agent/special/lance_rag/__init__.py +9 -0
  13. langroid/agent/special/lance_rag/critic_agent.py +136 -0
  14. langroid/agent/special/lance_rag/lance_rag_task.py +80 -0
  15. langroid/agent/special/lance_rag/query_planner_agent.py +180 -0
  16. langroid/agent/special/lance_tools.py +44 -0
  17. langroid/agent/special/neo4j/__init__.py +0 -0
  18. langroid/agent/special/neo4j/csv_kg_chat.py +174 -0
  19. langroid/agent/special/neo4j/neo4j_chat_agent.py +370 -0
  20. langroid/agent/special/neo4j/utils/__init__.py +0 -0
  21. langroid/agent/special/neo4j/utils/system_message.py +46 -0
  22. langroid/agent/special/relevance_extractor_agent.py +127 -0
  23. langroid/agent/special/retriever_agent.py +32 -198
  24. langroid/agent/special/sql/__init__.py +11 -0
  25. langroid/agent/special/sql/sql_chat_agent.py +47 -23
  26. langroid/agent/special/sql/utils/__init__.py +22 -0
  27. langroid/agent/special/sql/utils/description_extractors.py +95 -46
  28. langroid/agent/special/sql/utils/populate_metadata.py +28 -21
  29. langroid/agent/special/table_chat_agent.py +43 -9
  30. langroid/agent/task.py +475 -122
  31. langroid/agent/tool_message.py +75 -13
  32. langroid/agent/tools/__init__.py +13 -0
  33. langroid/agent/tools/duckduckgo_search_tool.py +66 -0
  34. langroid/agent/tools/google_search_tool.py +11 -0
  35. langroid/agent/tools/metaphor_search_tool.py +67 -0
  36. langroid/agent/tools/recipient_tool.py +16 -29
  37. langroid/agent/tools/run_python_code.py +60 -0
  38. langroid/agent/tools/sciphi_search_rag_tool.py +79 -0
  39. langroid/agent/tools/segment_extract_tool.py +36 -0
  40. langroid/cachedb/__init__.py +9 -0
  41. langroid/cachedb/base.py +22 -2
  42. langroid/cachedb/momento_cachedb.py +26 -2
  43. langroid/cachedb/redis_cachedb.py +78 -11
  44. langroid/embedding_models/__init__.py +34 -0
  45. langroid/embedding_models/base.py +21 -2
  46. langroid/embedding_models/models.py +120 -18
  47. langroid/embedding_models/protoc/embeddings.proto +19 -0
  48. langroid/embedding_models/protoc/embeddings_pb2.py +33 -0
  49. langroid/embedding_models/protoc/embeddings_pb2.pyi +50 -0
  50. langroid/embedding_models/protoc/embeddings_pb2_grpc.py +79 -0
  51. langroid/embedding_models/remote_embeds.py +153 -0
  52. langroid/language_models/__init__.py +45 -0
  53. langroid/language_models/azure_openai.py +80 -27
  54. langroid/language_models/base.py +117 -12
  55. langroid/language_models/config.py +5 -0
  56. langroid/language_models/openai_assistants.py +3 -0
  57. langroid/language_models/openai_gpt.py +558 -174
  58. langroid/language_models/prompt_formatter/__init__.py +15 -0
  59. langroid/language_models/prompt_formatter/base.py +4 -6
  60. langroid/language_models/prompt_formatter/hf_formatter.py +135 -0
  61. langroid/language_models/utils.py +18 -21
  62. langroid/mytypes.py +25 -8
  63. langroid/parsing/__init__.py +46 -0
  64. langroid/parsing/document_parser.py +260 -63
  65. langroid/parsing/image_text.py +32 -0
  66. langroid/parsing/parse_json.py +143 -0
  67. langroid/parsing/parser.py +122 -59
  68. langroid/parsing/repo_loader.py +114 -52
  69. langroid/parsing/search.py +68 -63
  70. langroid/parsing/spider.py +3 -2
  71. langroid/parsing/table_loader.py +44 -0
  72. langroid/parsing/url_loader.py +59 -11
  73. langroid/parsing/urls.py +85 -37
  74. langroid/parsing/utils.py +298 -4
  75. langroid/parsing/web_search.py +73 -0
  76. langroid/prompts/__init__.py +11 -0
  77. langroid/prompts/chat-gpt4-system-prompt.md +68 -0
  78. langroid/prompts/prompts_config.py +1 -1
  79. langroid/utils/__init__.py +17 -0
  80. langroid/utils/algorithms/__init__.py +3 -0
  81. langroid/utils/algorithms/graph.py +103 -0
  82. langroid/utils/configuration.py +36 -5
  83. langroid/utils/constants.py +4 -0
  84. langroid/utils/globals.py +2 -2
  85. langroid/utils/logging.py +2 -5
  86. langroid/utils/output/__init__.py +21 -0
  87. langroid/utils/output/printing.py +47 -1
  88. langroid/utils/output/status.py +33 -0
  89. langroid/utils/pandas_utils.py +30 -0
  90. langroid/utils/pydantic_utils.py +616 -2
  91. langroid/utils/system.py +98 -0
  92. langroid/vector_store/__init__.py +40 -0
  93. langroid/vector_store/base.py +203 -6
  94. langroid/vector_store/chromadb.py +59 -32
  95. langroid/vector_store/lancedb.py +463 -0
  96. langroid/vector_store/meilisearch.py +10 -7
  97. langroid/vector_store/momento.py +262 -0
  98. langroid/vector_store/qdrantdb.py +104 -22
  99. {langroid-0.1.85.dist-info → langroid-0.1.219.dist-info}/METADATA +329 -149
  100. langroid-0.1.219.dist-info/RECORD +127 -0
  101. {langroid-0.1.85.dist-info → langroid-0.1.219.dist-info}/WHEEL +1 -1
  102. langroid/agent/special/recipient_validator_agent.py +0 -157
  103. langroid/parsing/json.py +0 -64
  104. langroid/utils/web/selenium_login.py +0 -36
  105. langroid-0.1.85.dist-info/RECORD +0 -94
  106. /langroid/{scripts → agent/callbacks}/__init__.py +0 -0
  107. {langroid-0.1.85.dist-info → langroid-0.1.219.dist-info}/LICENSE +0 -0
@@ -0,0 +1,127 @@
1
+ langroid/__init__.py,sha256=qgY-OqzYSWOc6EytQJN9sH2PwDp1UIzP9lXhrYH6aLU,1645
2
+ langroid/agent/__init__.py,sha256=_D8dxnfdr92ch1CIrUkKjrB5HVvsQdn62b1Fb2kBxV8,785
3
+ langroid/agent/base.py,sha256=jyGFmojrFuOy81lUkNsJlR6mLIOY6kOD20P9dhEcEuw,35059
4
+ langroid/agent/batch.py,sha256=T9dgSPThrmIWxQxqDlGwhHa7yw3XIKE_U30bLMRDpNQ,9481
5
+ langroid/agent/callbacks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ langroid/agent/callbacks/chainlit.py,sha256=aYuJ8M4VDHr5oymoXL2bpThM7p6P9L45fgJf3MLdkWo,20997
7
+ langroid/agent/chat_agent.py,sha256=X5uVMm9qdw3j-FRf4hbN8k8ByaSdtQCTuU8olKE0sbs,38750
8
+ langroid/agent/chat_document.py,sha256=PL8iA1ZYjXNFVa3kMO8T4sbbM3rzHWpRAY6PN_7n5LQ,7969
9
+ langroid/agent/helpers.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
+ langroid/agent/junk,sha256=LxfuuW7Cijsg0szAzT81OjWWv1PMNI-6w_-DspVIO2s,339
11
+ langroid/agent/openai_assistant.py,sha256=QTLBgnH6Btf2GWzN-WApvra-vPQWvYcXcAOULuIy4Ig,32702
12
+ langroid/agent/special/__init__.py,sha256=XPE076zD-roskxNBn-A1hnh4AHoMiQN9gk1UDjPaBaU,1201
13
+ langroid/agent/special/doc_chat_agent.py,sha256=-jMgaAvjMEIVL1iPpxhGYq3_YoIvSfic3em5FzoKtWQ,53342
14
+ langroid/agent/special/lance_doc_chat_agent.py,sha256=USp0U3eTaJzwF_3bdqE7CedSLbaqAi2tm-VzygcyLaA,10175
15
+ langroid/agent/special/lance_rag/__init__.py,sha256=QTbs0IVE2ZgDg8JJy1zN97rUUg4uEPH7SLGctFNumk4,174
16
+ langroid/agent/special/lance_rag/critic_agent.py,sha256=pi_9eMBxEycbWTddtq_yz-mOb2V4SgGm3zfsOH1HU-Q,5775
17
+ langroid/agent/special/lance_rag/lance_rag_task.py,sha256=l_HQgrYY-CX2FwIsS961aEF3bYog3GDYo98fj0C0mSk,2889
18
+ langroid/agent/special/lance_rag/query_planner_agent.py,sha256=_8AwZsuEaoHGjrOrkLU2Lvxuqi4h8PkxBRcPmWPOSHk,8033
19
+ langroid/agent/special/lance_tools.py,sha256=WypIS-3ZMDqY_PZEGB2K80-o4RfS43_OnER0dyFlsDY,1339
20
+ langroid/agent/special/neo4j/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ langroid/agent/special/neo4j/csv_kg_chat.py,sha256=koL3sKtHm3aRkLTiARs54ngrcU3lOR1WaLLc_i8rWOU,6374
22
+ langroid/agent/special/neo4j/neo4j_chat_agent.py,sha256=vBr6EQ_eJCYAtqDe-gTSvWHT-jRE_fZOPsGWxuDJe4w,13092
23
+ langroid/agent/special/neo4j/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ langroid/agent/special/neo4j/utils/system_message.py,sha256=vRpz1P-OYLLiC6OGYYoK6x77yxVzDxMTCEJSsYUIuG4,2242
25
+ langroid/agent/special/relevance_extractor_agent.py,sha256=zIx8GUdVo1aGW6ASla0NPQjYYIpmriK_TYMijqAx3F8,4796
26
+ langroid/agent/special/retriever_agent.py,sha256=lvMvf-u9rSosg4YASuFdUbGLgkzLPknXAbJZfZ1LZCc,1868
27
+ langroid/agent/special/sql/__init__.py,sha256=qUM-b4FfvIt0gYWP7_niyqR3OwVMMkuK2SyqUYWjyxs,207
28
+ langroid/agent/special/sql/sql_chat_agent.py,sha256=ZTK19ToIpSxtedwzsqL38diMtHth6uVDf25Wng2dn7Q,13746
29
+ langroid/agent/special/sql/utils/__init__.py,sha256=i8oYoyI4aV1LcYktMOhzi_eYbQ6RVt2e7Dj2bXkCZXc,447
30
+ langroid/agent/special/sql/utils/description_extractors.py,sha256=RZ2R3DmASxB1ijzbA_TuxkhP00Pxcg_tAKlLXGo3rcg,6381
31
+ langroid/agent/special/sql/utils/populate_metadata.py,sha256=x2OMKfmIBnJESBG3qKt6gvr3H3L4ZQcoxHfNdWfHjZs,2987
32
+ langroid/agent/special/sql/utils/system_message.py,sha256=qKLHkvQWRQodTtPLPxr1GSLUYUFASZU8x-ybV67cB68,1885
33
+ langroid/agent/special/sql/utils/tools.py,sha256=6uB2424SLtmapui9ggcEr0ZTiB6_dL1-JRGgN8RK9Js,1332
34
+ langroid/agent/special/table_chat_agent.py,sha256=rUV7Rv2GFF6Yqv3_uqvgFSs_EdyDUNpdQobTTpjdEtc,9031
35
+ langroid/agent/task.py,sha256=sFncTES0L_O2IpbnHRrNzad0HhtsbHoQ7j3Cjc9eTt0,49711
36
+ langroid/agent/tool_message.py,sha256=2kPsQUwi3ZzINTUNj10huKnZLjLp5SXmefacTHx8QDc,8304
37
+ langroid/agent/tools/__init__.py,sha256=q-maq3k2BXhPAU99G0H6-j_ozoRvx15I1RFpPVicQIU,304
38
+ langroid/agent/tools/duckduckgo_search_tool.py,sha256=yvd735hJkFRgcJF7pgaiIg0OmMw5BMFxqDTyyg1EC9g,2461
39
+ langroid/agent/tools/extract_tool.py,sha256=u5lL9rKBzaLBOrRyLnTAZ97pQ1uxyLP39XsWMnpaZpw,3789
40
+ langroid/agent/tools/generator_tool.py,sha256=y0fB0ZObjA0b3L0uSTtrqRCKHDUR95arBftqiUeKD2o,663
41
+ langroid/agent/tools/google_search_tool.py,sha256=cQxcNtb8XCNpOo_yCeYRwG_y-OATjPgkbr01kea9qWE,1421
42
+ langroid/agent/tools/metaphor_search_tool.py,sha256=NKHss-AkI942_XhfMgUctAwHjIHpqp5NfYIebKV4UcE,2454
43
+ langroid/agent/tools/recipient_tool.py,sha256=61vdKv06qgVdtnE3gxjzV8RvUEy8JhbC9eWa0J0BPdw,9171
44
+ langroid/agent/tools/run_python_code.py,sha256=V3mHdHQYn0M0PAtyoHxjNvk6KvWWcQ4ugo0TOKc8HyI,1752
45
+ langroid/agent/tools/sciphi_search_rag_tool.py,sha256=IAEgZY5-euQh8MndMzZnn1XVxaItvWYB2VF9-YHfunk,2496
46
+ langroid/agent/tools/segment_extract_tool.py,sha256=W39poS7Av2EuJ34tGKhLhzgj3zEyZnBplpSt2goRAp4,1285
47
+ langroid/agent_config.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
+ langroid/cachedb/__init__.py,sha256=ygx42MS7fvh2UwRMjukTk3dWBkzv_rACebTBRYa_MkU,148
49
+ langroid/cachedb/base.py,sha256=tdIZmdDdDMW-wVkNQdi4vMQCHP718l9JM6cDhL6odf4,1229
50
+ langroid/cachedb/momento_cachedb.py,sha256=IbaYG7HgG-G18GlWsYVnLv0r2e2S48z6sl8OlJOGUfc,2998
51
+ langroid/cachedb/redis_cachedb.py,sha256=uEjxephnxaL8OqPGDYZnM__fpcTsLb0WTNS_AFimkvA,4984
52
+ langroid/embedding_models/__init__.py,sha256=AJg2668ytmUyqYP0SGw-ZKz2ITi4YK7IAv2lfCjFfOg,714
53
+ langroid/embedding_models/base.py,sha256=xY9QF01ilsMvaNH4JMDvkZgXY59AeYR4VAykgNd6Flg,1818
54
+ langroid/embedding_models/clustering.py,sha256=tZWElUqXl9Etqla0FAa7og96iDKgjqWjucZR_Egtp-A,6684
55
+ langroid/embedding_models/models.py,sha256=-xeN0irBPc1tUgRFHGM1ki4NwOIHr6F3SKuEjD5nTOg,7144
56
+ langroid/embedding_models/protoc/embeddings.proto,sha256=_O-SgFpTaylQeOTgSpxhEJ7CUw7PeCQQJLaPqpPYKJg,321
57
+ langroid/embedding_models/protoc/embeddings_pb2.py,sha256=4Q57PhOunv-uZNJrxYrWBXAI0ZtfnVZXFRhRj5JuRSg,1662
58
+ langroid/embedding_models/protoc/embeddings_pb2.pyi,sha256=UkNy7BrNsmQm0vLb3NtGXy8jVtz-kPWwwFsX-QbQBhQ,1475
59
+ langroid/embedding_models/protoc/embeddings_pb2_grpc.py,sha256=9dYQqkW3JPyBpSEjeGXTNpSqAkC-6FPtBHyteVob2Y8,2452
60
+ langroid/embedding_models/remote_embeds.py,sha256=6_kjXByVbqhY9cGwl9R83ZcYC2km-nGieNNAo1McHaY,5151
61
+ langroid/language_models/__init__.py,sha256=5L9ndEEC8iLJHjDJmYFTnv6-2-3xsxWUMHcugR8IeDs,821
62
+ langroid/language_models/azure_openai.py,sha256=ncRCbKooqLVOY-PWQUIo9C3yTuKEFbAwyngXT_M4P7k,5989
63
+ langroid/language_models/base.py,sha256=4ybrbvOnoWzEVzVuZ3AStsl8ELoljiKtgtdykUzRSxg,21014
64
+ langroid/language_models/config.py,sha256=5UF3DzO1a-Dfsc3vghE0XGq7g9t_xDsRCsuRiU4dgBg,366
65
+ langroid/language_models/openai_assistants.py,sha256=9K-DEAL2aSWHeXj2hwCo2RAlK9_1oCPtqX2u1wISCj8,36
66
+ langroid/language_models/openai_gpt.py,sha256=6CE6I_hmnHfRIMJMh4qhVeKijgKEm_LNcWNn3vLMLlM,49680
67
+ langroid/language_models/prompt_formatter/__init__.py,sha256=9JXFF22QNMmbQV1q4nrIeQVTtA3Tx8tEZABLtLBdFyc,352
68
+ langroid/language_models/prompt_formatter/base.py,sha256=eDS1sgRNZVnoajwV_ZIha6cba5Dt8xjgzdRbPITwx3Q,1221
69
+ langroid/language_models/prompt_formatter/hf_formatter.py,sha256=TFL6ppmeQWnzr6CKQzRZFYY810zE1mr8DZnhw6i85ok,5217
70
+ langroid/language_models/prompt_formatter/llama2_formatter.py,sha256=YdcO88qyBeuMENVIVvVqSYuEpvYSTndUe_jd6hVTko4,2899
71
+ langroid/language_models/utils.py,sha256=ivbmAUpDewWb-j9HNhnpmFeQbELQaGYRNul4wiP9p3c,4756
72
+ langroid/mytypes.py,sha256=opL488mtHKob1uJeK_h1-kNjU5GZwkgCfXhBQCsONWU,2614
73
+ langroid/parsing/__init__.py,sha256=2O5HOW8nDE3v-JInc5z2wIbFGejf4h5ZTdPqxsFtaWE,870
74
+ langroid/parsing/agent_chats.py,sha256=sbZRV9ujdM5QXvvuHVjIi2ysYSYlap-uqfMMUKulrW0,1068
75
+ langroid/parsing/code-parsing.md,sha256=--cyyNiSZSDlIwcjAV4-shKrSiRe2ytF3AdSoS_hD2g,3294
76
+ langroid/parsing/code_parser.py,sha256=BbDAzp35wkYQ9U1dpf1ARL0lVyi0tfqEc6_eox2C090,3727
77
+ langroid/parsing/config.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
+ langroid/parsing/document_parser.py,sha256=uf1YhpC8-Z1RF7R0Yfy39VOHGf4YWwJjnDRrDIl3Q3E,22307
79
+ langroid/parsing/image_text.py,sha256=sbLIQ5nHe2UnYUksBaQsmZGaX-X0qgEpPd7CEzi_z5M,910
80
+ langroid/parsing/para_sentence_split.py,sha256=AJBzZojP3zpB-_IMiiHismhqcvkrVBQ3ZINoQyx_bE4,2000
81
+ langroid/parsing/parse_json.py,sha256=tgB_oatcrgt6L9ZplC-xBBXjLzL1gjSQf1L2_W5kwFA,4230
82
+ langroid/parsing/parser.py,sha256=vE5j1LVDeFQPmLrXCWBfvuoPsjjvVIGHcsIWCBR8HDM,10617
83
+ langroid/parsing/repo_loader.py,sha256=nyVBvkhh2nXTLFwMcnsayqMrjvtLKXXj89RTBzXBcng,30781
84
+ langroid/parsing/search.py,sha256=plQtjarB9afGfJLB0CyPXPq3mM4m7kRsfd0_4brziEI,8846
85
+ langroid/parsing/spider.py,sha256=w_mHR1B4KOmxsBLoVI8kMkMTEbwTzeK3ath9fOMJrTk,3043
86
+ langroid/parsing/table_loader.py,sha256=qNM4obT_0Y4tjrxNBCNUYjKQ9oETCZ7FbolKBTcz-GM,3410
87
+ langroid/parsing/url_loader.py,sha256=Na2TBlKuQkloZzkE2d7xl6mh9olS3CbpgCsJbJ-xhIA,4472
88
+ langroid/parsing/url_loader_cookies.py,sha256=Lg4sNpRz9MByWq2mde6T0hKv68VZSV3mtMjNEHuFeSU,2327
89
+ langroid/parsing/urls.py,sha256=5B0-2MM4LoFC7jHUJ0rft7Mx5GUrnmz8oFioO0iaMt8,7975
90
+ langroid/parsing/utils.py,sha256=pbSAbfwA28EBNESpQRJee_Kp1b44qze-2_2b9qJOKfM,12646
91
+ langroid/parsing/web_search.py,sha256=XSiSHB4c1Wa8RjWkC4Yh-ac8S7a2WPPYj0n-Ma716RY,4759
92
+ langroid/prompts/__init__.py,sha256=B0vpJzIJlMR3mFRtoQwyALsFzBHvLp9f92acD8xJA_0,185
93
+ langroid/prompts/chat-gpt4-system-prompt.md,sha256=Q3uLCJTPQvmUkZN2XDnkBC7M2K3X0F3C3GIQBaFvYvw,5329
94
+ langroid/prompts/dialog.py,sha256=SpfiSyofSgy2pwD1YboHR_yHO3LEEMbv6j2sm874jKo,331
95
+ langroid/prompts/prompts_config.py,sha256=XRQHzod7KBnoKn3B_V878jZiqBA7rcn-CtGPkuAe_yM,131
96
+ langroid/prompts/templates.py,sha256=4X-07tnmUQ8Z_zaWRQAUUyKiErGztp3tERujqnG8sGA,6369
97
+ langroid/prompts/transforms.py,sha256=GsQo1klGxUy0fACh6j0lTblk6XEl2erRnhRWlN2M4-c,2706
98
+ langroid/utils/__init__.py,sha256=ARx5To4Hsv1K5QAzK4uUqdEoB_iq5HK797vae1AcMBI,300
99
+ langroid/utils/algorithms/__init__.py,sha256=WylYoZymA0fnzpB4vrsH_0n7WsoLhmuZq8qxsOCjUpM,41
100
+ langroid/utils/algorithms/graph.py,sha256=JbdpPnUOhw4-D6O7ou101JLA3xPCD0Lr3qaPoFCaRfo,2866
101
+ langroid/utils/configuration.py,sha256=TiDZrQVeEthMFA4QY_HTgQaDCJwS4I5S-aR_taOdc00,3201
102
+ langroid/utils/constants.py,sha256=_t4eZ2KamgqOaOH1PKXq1_BzYRTA8qZ1NJ4kHXJYzlI,555
103
+ langroid/utils/docker.py,sha256=kJQOLTgM0x9j9pgIIqp0dZNZCTvoUDhp6i8tYBq1Jr0,1105
104
+ langroid/utils/globals.py,sha256=VkTHhlqSz86oOPq65sjul0XU8I52UNaFC5vwybMQ74w,1343
105
+ langroid/utils/llms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
+ langroid/utils/llms/strings.py,sha256=CSAX9Z6FQOLXOzbLMe_Opqtc3ruDAKTTk7cPqc6Blh0,263
107
+ langroid/utils/logging.py,sha256=R8TN-FqVpwZ4Ajgls9TDMthLvPpQd0QVNXK-PJDj1Z8,3917
108
+ langroid/utils/output/__init__.py,sha256=4X8Hdo1SEm06NUnggMJrLtW8i1owdDQPrS7J08BaTec,341
109
+ langroid/utils/output/printing.py,sha256=5EsYB1O4qKhocW19aebOUzK82RD9U5nygbY21yo8gfg,2872
110
+ langroid/utils/output/status.py,sha256=VoSXmWDuddo1ipCzDAA6qlgffr5E4lSmBD0rIdNxxcs,774
111
+ langroid/utils/pandas_utils.py,sha256=UctS986Jtl_MvU5rA7-GfrjEHXP7MNu8ePhepv0bTn0,755
112
+ langroid/utils/pydantic_utils.py,sha256=yb-ghaQYL7EIYeiZ0tailvZvAuJZNF7UBXkd3z35OYc,21728
113
+ langroid/utils/system.py,sha256=tWoEbzHzJ6ywdsoa9EwsQrZfGk2t7q87_zKNwau2C8s,4546
114
+ langroid/utils/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
+ langroid/utils/web/login.py,sha256=1iz9eUAHa87vpKIkzwkmFa00avwFWivDSAr7QUhK7U0,2528
116
+ langroid/vector_store/__init__.py,sha256=D82ioqPWxKTTbN0qiPNB-I1GjovhLw1MgDuYhcB3hCs,831
117
+ langroid/vector_store/base.py,sha256=VZl-pvGs6K-ruTT8SQmDthsCp-VARYaf6OuzKmcXN58,13469
118
+ langroid/vector_store/chromadb.py,sha256=rp-qWmYJc_HR48JYNt1MixjJM90jZTdeZIYghd5CenA,8109
119
+ langroid/vector_store/lancedb.py,sha256=lbl8wZuV6GNw0LnIwOSriSNwoMEba90umQTcQHtMw7Y,18483
120
+ langroid/vector_store/meilisearch.py,sha256=d2huA9P-NoYRuAQ9ZeXJmMKr7ry8u90RUSR28k2ecQg,11340
121
+ langroid/vector_store/momento.py,sha256=9cui31TTrILid2KIzUpBkN2Ey3g_CZWOQVdaFsA4Ors,10045
122
+ langroid/vector_store/qdrant_cloud.py,sha256=3im4Mip0QXLkR6wiqVsjV1QvhSElfxdFSuDKddBDQ-4,188
123
+ langroid/vector_store/qdrantdb.py,sha256=_egbsP9SWBwmI827EDYSSOqfIQSmwNsmJfFTxrLpWYE,13457
124
+ langroid-0.1.219.dist-info/LICENSE,sha256=EgVbvA6VSYgUlvC3RvPKehSg7MFaxWDsFuzLOsPPfJg,1065
125
+ langroid-0.1.219.dist-info/METADATA,sha256=hPGE8zril18HUqkbbqKiSsFGwyMyCr0232TvF1HZx0Q,47945
126
+ langroid-0.1.219.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
127
+ langroid-0.1.219.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.4.0
2
+ Generator: poetry-core 1.8.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,157 +0,0 @@
1
- """
2
- Agent to detect un-specified recipient and ask for clarification,
3
- and when received, modify the pending message so that it looks as if
4
- the parent task's LLM generated the right message in the first place.
5
-
6
- Note that this is deprecated in favor of using the `RecipientTool`, defined in
7
- `langroid.agent.tools.recipient_tool.py`.
8
- See usage examples in `tests/main/test_multi_agent_complex.py` and
9
- `tests/main/test_recipient_tool.py`.
10
-
11
- The advantages of using the `RecipientTool` are:
12
- - it uses the tool/function-call mechanism to specify a recipient in a JSON-structured
13
- string, which is more consistent with the rest of the system, and does not require
14
- inventing a new syntax like `TO:<recipient>` (which the RecipientValidatorAgent
15
- uses).
16
- - it removes the need for any special parsing of the message content, since we leverage
17
- the built-in JSON tool-matching in `Agent.handle_message()` and downstream code.
18
- - it does not require setting the `parent_responder` field in the `ChatDocument`
19
- metadata, which is somewhat hacky.
20
- - it appears to be less brittle than requiring the LLM to use TO:<recipient> syntax:
21
- The LLM almost never forgets to use the RecipientTool as instructed.
22
- - The RecipientTool class acts as a specification of the required syntax, and also
23
- contains mechanisms to enforce this syntax.
24
- - For a developer who needs to enforce recipient specification for an agent, they only
25
- need to do `agent.enable_message(RecipientTool)`, and the rest is taken care of.
26
-
27
- """
28
-
29
- import logging
30
- from typing import List, Optional
31
-
32
- from rich import print
33
- from rich.console import Console
34
-
35
- from langroid.agent.chat_agent import ChatAgent, ChatAgentConfig
36
- from langroid.agent.chat_document import (
37
- ChatDocAttachment,
38
- ChatDocMetaData,
39
- ChatDocument,
40
- )
41
- from langroid.mytypes import Entity
42
-
43
- console = Console()
44
-
45
- logger = logging.getLogger(__name__)
46
- # TODO - this is currently hardocded to validate the TO:<recipient> format
47
- # but we could have a much more general declarative grammar-based validator
48
-
49
-
50
- class RecipientValidatorConfig(ChatAgentConfig):
51
- recipients: List[str]
52
- tool_recipient: str | None = None
53
- name = "RecipientValidator"
54
-
55
-
56
- class RecipientValidatorAttachment(ChatDocAttachment):
57
- content: str = ""
58
-
59
-
60
- class RecipientValidator(ChatAgent):
61
- def __init__(self, config: RecipientValidatorConfig):
62
- super().__init__(config)
63
- self.config: RecipientValidatorConfig = config
64
- self.llm = None
65
- self.vecdb = None
66
-
67
- def user_response(
68
- self,
69
- msg: Optional[str | ChatDocument] = None,
70
- ) -> Optional[ChatDocument]:
71
- # don't get user input
72
- return None
73
-
74
- def agent_response(
75
- self,
76
- msg: Optional[str | ChatDocument] = None,
77
- ) -> Optional[ChatDocument]:
78
- """
79
- Check whether the incoming message is in the expected format.
80
- Used to check whether the output of the LLM of the calling agent is
81
- in the expected format.
82
-
83
- Args:
84
- msg (str|ChatDocument): the incoming message (pending message of the task)
85
-
86
- Returns:
87
- Optional[ChatDocument]:
88
- - if msg is in expected format, return None (no objections)
89
- - otherwise, a ChatDocument that either contains a request to
90
- LLM to clarify/fix the msg, or a fixed version of the LLM's original
91
- message.
92
- """
93
- if msg is None:
94
- return None
95
- if isinstance(msg, str):
96
- msg = ChatDocument.from_str(msg)
97
-
98
- recipient = msg.metadata.recipient
99
- has_func_call = msg.function_call is not None
100
- content = msg.content
101
-
102
- if recipient != "":
103
- # there is a clear recipient, return None (no objections)
104
- return None
105
-
106
- attachment: None | ChatDocAttachment = None
107
- responder: None | Entity = None
108
- sender_name = self.config.name
109
- if (
110
- has_func_call or "TOOL" in content
111
- ) and self.config.tool_recipient is not None:
112
- # assume it is meant for Coder, so simply set the recipient field,
113
- # and the parent task loop continues as normal
114
- # TODO- but what if it is not a legit function call
115
- recipient = self.config.tool_recipient
116
- elif content in self.config.recipients:
117
- # the incoming message is a clarification response from LLM
118
- recipient = content
119
- if msg.attachment is not None and isinstance(
120
- msg.attachment, RecipientValidatorAttachment
121
- ):
122
- content = msg.attachment.content
123
- else:
124
- logger.warning("ValidatorAgent: Did not find content to correct")
125
- content = ""
126
- # we've used the attachment, don't need anymore
127
- attachment = RecipientValidatorAttachment(content="")
128
- # we are rewriting an LLM message from parent, so
129
- # pretend it is from LLM
130
- responder = Entity.LLM
131
- sender_name = ""
132
- else:
133
- # save the original message so when the Validator
134
- # receives the LLM clarification,
135
- # it can use it as the `content` field
136
- attachment = RecipientValidatorAttachment(content=content)
137
- recipient_str = ", ".join(self.config.recipients)
138
- content = f"""
139
- Who is this message for?
140
- Please simply respond with one of these names:
141
- {recipient_str}
142
- """
143
- console.print(f"[red]{self.indent}", end="")
144
- print(f"[red]Validator: {content}")
145
-
146
- return ChatDocument(
147
- content=content,
148
- function_call=msg.function_call if has_func_call else None,
149
- attachment=attachment,
150
- metadata=ChatDocMetaData(
151
- source=Entity.AGENT,
152
- sender=Entity.AGENT,
153
- parent_responder=responder,
154
- sender_name=sender_name,
155
- recipient=recipient,
156
- ),
157
- )
langroid/parsing/json.py DELETED
@@ -1,64 +0,0 @@
1
- import json
2
- from typing import Any, List
3
-
4
- import regex
5
-
6
-
7
- def is_valid_json(json_str: str) -> bool:
8
- """Check if the input string is a valid JSON.
9
-
10
- Args:
11
- json_str (str): The input string to check.
12
-
13
- Returns:
14
- bool: True if the input string is a valid JSON, False otherwise.
15
- """
16
- try:
17
- json.loads(json_str)
18
- return True
19
- except ValueError:
20
- return False
21
-
22
-
23
- def extract_top_level_json(s: str) -> List[str]:
24
- """Extract all top-level JSON-formatted substrings from a given string.
25
-
26
- Args:
27
- s (str): The input string to search for JSON substrings.
28
-
29
- Returns:
30
- List[str]: A list of top-level JSON-formatted substrings.
31
- """
32
- # Find JSON object and array candidates using regular expressions
33
- json_candidates = regex.findall(r"(?<!\\)(?:\\\\)*\{(?:[^{}]|(?R))*\}", s)
34
-
35
- top_level_jsons = [
36
- candidate for candidate in json_candidates if is_valid_json(candidate)
37
- ]
38
-
39
- return top_level_jsons
40
-
41
-
42
- def top_level_json_field(s: str, f: str) -> Any:
43
- """
44
- Extract the value of a field f from a top-level JSON object.
45
- If there are multiple, just return the first.
46
-
47
- Args:
48
- s (str): The input string to search for JSON substrings.
49
- f (str): The field to extract from the JSON object.
50
-
51
- Returns:
52
- str: The value of the field f in the top-level JSON object, if any.
53
- Otherwise, return an empty string.
54
- """
55
-
56
- jsons = extract_top_level_json(s)
57
- if len(jsons) == 0:
58
- return ""
59
- for j in jsons:
60
- json_data = json.loads(j)
61
- if f in json_data:
62
- return json_data[f]
63
-
64
- return ""
@@ -1,36 +0,0 @@
1
- from selenium import webdriver
2
-
3
- # Get the username and password
4
- username = "your_username"
5
- password = "your_password"
6
-
7
- # Create a web driver
8
- driver = webdriver.Chrome()
9
-
10
- # Navigate to the login page
11
- driver.get("https://www.example.com/login")
12
-
13
- # Find the username and password input fields
14
- username_input = driver.find_element_by_id("username")
15
- password_input = driver.find_element_by_id("password")
16
-
17
- # Enter the username and password
18
- username_input.send_keys(username)
19
- password_input.send_keys(password)
20
-
21
- # Click the login button
22
- login_button = driver.find_element_by_id("login-button")
23
- login_button.click()
24
-
25
- # Check if the login was successful
26
- if driver.current_url == "https://www.example.com/home":
27
- print("Login successful")
28
- else:
29
- print("Login failed")
30
-
31
- # If the login was successful, you can now access the website's content. For example, you can use Selenium to click on links, fill out forms, and submit requests.
32
-
33
- # If the login failed, you can try again with different credentials. You can also try to debug the code to see where the problem is.
34
-
35
- # Finally, when you are done using Selenium, you should close the web driver.
36
- driver.quit()
@@ -1,94 +0,0 @@
1
- langroid/__init__.py,sha256=sEKJ_5WJBAMZApevfeE3gxLK-eotVzJMJlT83G0rAko,30
2
- langroid/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- langroid/agent/base.py,sha256=loFNVP8mXZz5yCjw-y__BKKt4lrhWzHdK4ulDxQy9Bw,29535
4
- langroid/agent/chat_agent.py,sha256=wBr4lOPUFZ4WG3iWEwgO0JYpluawFk-yaFQ6xreo1yM,31472
5
- langroid/agent/chat_document.py,sha256=k7Klav3FIBTf2w95bQtxgqBrf2fMo1ydSlklQvv4RCg,6252
6
- langroid/agent/helpers.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- langroid/agent/junk,sha256=LxfuuW7Cijsg0szAzT81OjWWv1PMNI-6w_-DspVIO2s,339
8
- langroid/agent/special/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- langroid/agent/special/doc_chat_agent.py,sha256=KBXdAuBlXrYdmvo3D0nhG0qAQFgR8m7iF40w6i4VEM4,25326
10
- langroid/agent/special/recipient_validator_agent.py,sha256=R3Rit93BNWQar_9stuDBGzmLr2W-IYOQ7oq-tlNNlps,6035
11
- langroid/agent/special/retriever_agent.py,sha256=_aylUhj2R4sfnh_k4S-jVUHitCJl0Ct0Ul8BXRwgFiw,7315
12
- langroid/agent/special/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- langroid/agent/special/sql/sql_chat_agent.py,sha256=Ua_gfK_1k5ct59Zkbe78bzs-2jabtFkEVx76a0pGs9Y,12867
14
- langroid/agent/special/sql/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- langroid/agent/special/sql/utils/description_extractors.py,sha256=GcQ82IhKPInS_3TOqRgD4iRUQt-Ez4WG9vNHsV0V85Q,4494
16
- langroid/agent/special/sql/utils/populate_metadata.py,sha256=zRjw31a1ZXvpx9bcmbtC2mngdHl-bp1ZNHStcPG8_Qk,2712
17
- langroid/agent/special/sql/utils/system_message.py,sha256=qKLHkvQWRQodTtPLPxr1GSLUYUFASZU8x-ybV67cB68,1885
18
- langroid/agent/special/sql/utils/tools.py,sha256=6uB2424SLtmapui9ggcEr0ZTiB6_dL1-JRGgN8RK9Js,1332
19
- langroid/agent/special/table_chat_agent.py,sha256=zejrvv6GaspImVJ1oXWUTVN-h-kDjadTdBDkTRqrYKo,7691
20
- langroid/agent/task.py,sha256=YkwIR0sLmwGumRCx0uUJjeZlBIzZKLgmHx3-7lcwklY,34298
21
- langroid/agent/tool_message.py,sha256=vUeM2ZXOlXFTFL9th6nXUMYRrWqQyz5EprN1BF-Sd1M,6085
22
- langroid/agent/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- langroid/agent/tools/extract_tool.py,sha256=u5lL9rKBzaLBOrRyLnTAZ97pQ1uxyLP39XsWMnpaZpw,3789
24
- langroid/agent/tools/generator_tool.py,sha256=y0fB0ZObjA0b3L0uSTtrqRCKHDUR95arBftqiUeKD2o,663
25
- langroid/agent/tools/google_search_tool.py,sha256=64F9oMNdS237BBOitrvYXN4Il_ES_fNrHkh35tBEDfA,1160
26
- langroid/agent/tools/recipient_tool.py,sha256=-2QWXHhnbTkUsg-jNig6yKt8RnSQ1SLwR6KmBzvYhYk,10217
27
- langroid/agent_config.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- langroid/cachedb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- langroid/cachedb/base.py,sha256=F-QSDlRXrC0tBRbxL397MX8hulfBMAnZNs1e9zH71OQ,790
30
- langroid/cachedb/momento_cachedb.py,sha256=mfLnAJO3-mPucHjwwgHeU7HQzE_jmUxca2qt3RUHVC0,2342
31
- langroid/cachedb/redis_cachedb.py,sha256=xuQ96FAqcHTfK8PEt1tjrh1BkMWUjojFHIgjDfF3SnU,2369
32
- langroid/embedding_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- langroid/embedding_models/base.py,sha256=3E4GhGUwpNhM0z5Jnnj0LY9DvG9nrXgTXxKjuFliSpA,1179
34
- langroid/embedding_models/clustering.py,sha256=tZWElUqXl9Etqla0FAa7og96iDKgjqWjucZR_Egtp-A,6684
35
- langroid/embedding_models/models.py,sha256=gJ7a0hPO1tJ_wgrodec9Q-xCDAhHUuO5P2JZY4DsPUE,3295
36
- langroid/language_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- langroid/language_models/azure_openai.py,sha256=9NLr9s9l7JlCHSuMooxYLLgs1d04IwE_bO7r22bhrg8,3458
38
- langroid/language_models/base.py,sha256=Jo0Qbg30Z4xKlTLdnCJfyfipC8EyBY8vi4eH2DKX-AU,17279
39
- langroid/language_models/config.py,sha256=PXcmEUq52GCDj2sekt8F9E1flWyyNjP2S0LTRs7T6Kg,269
40
- langroid/language_models/openai_gpt.py,sha256=m34xZa2xZPbWSAXC1ZYsO7FqhSCX9s_KD85WjhDFl2g,34907
41
- langroid/language_models/prompt_formatter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
- langroid/language_models/prompt_formatter/base.py,sha256=2y_GcwhstvB5ih3haS7l5Fv79jVnFJ_vEw1jqWJzB9k,1247
43
- langroid/language_models/prompt_formatter/llama2_formatter.py,sha256=YdcO88qyBeuMENVIVvVqSYuEpvYSTndUe_jd6hVTko4,2899
44
- langroid/language_models/utils.py,sha256=rmnSn-sJ3aKl_wBdeLPkck0Li4Ed6zkCxZYYl7n1V34,4668
45
- langroid/mytypes.py,sha256=5jl4vpnwN2U19Eyh0mH1JhoVFpa8Ml7-HYpNyrgSArw,2110
46
- langroid/parsing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
- langroid/parsing/agent_chats.py,sha256=sbZRV9ujdM5QXvvuHVjIi2ysYSYlap-uqfMMUKulrW0,1068
48
- langroid/parsing/code-parsing.md,sha256=--cyyNiSZSDlIwcjAV4-shKrSiRe2ytF3AdSoS_hD2g,3294
49
- langroid/parsing/code_parser.py,sha256=BbDAzp35wkYQ9U1dpf1ARL0lVyi0tfqEc6_eox2C090,3727
50
- langroid/parsing/config.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- langroid/parsing/document_parser.py,sha256=wsBwZ8LHzobAoxxyV46iZQ5B69lRkZjxDEIV6d7SwEg,14581
52
- langroid/parsing/json.py,sha256=MVqBUfInALQm1QKbcfEvLzWxBz_UztCIyGk7AK5uFPo,1650
53
- langroid/parsing/para_sentence_split.py,sha256=AJBzZojP3zpB-_IMiiHismhqcvkrVBQ3ZINoQyx_bE4,2000
54
- langroid/parsing/parser.py,sha256=99RE4sQg5CHH4xEznuJOE_yl3lIIehkRyGmUdq4hmuo,8070
55
- langroid/parsing/repo_loader.py,sha256=nmtvorVip4VQbUMDxoxpVyAlbLt8R8eJjxpAX0vVlfs,27695
56
- langroid/parsing/search.py,sha256=uU-UNJalTh1z9o274e3d4OgV3rRGdVk_qIj3-kJBxRI,8375
57
- langroid/parsing/spider.py,sha256=aX0ucHQ9SVgpieNjtEn_G1bhq5DH_03VpBXoxcdZPl8,3008
58
- langroid/parsing/table_loader.py,sha256=uqbupGr4y_7os18RtaY5GpD0hWcgzROoNy8dQIHB4kc,1767
59
- langroid/parsing/url_loader.py,sha256=dhmUTysS_YZyIXVAekxCGPiCbFsOsHXj_eHMow0xoGQ,2153
60
- langroid/parsing/url_loader_cookies.py,sha256=Lg4sNpRz9MByWq2mde6T0hKv68VZSV3mtMjNEHuFeSU,2327
61
- langroid/parsing/urls.py,sha256=KR-oX-zjlibOU9D7Uv3DfbZFwnBiI4USmxnurseIPp8,6005
62
- langroid/parsing/utils.py,sha256=guwGW5NZz2azjhiYhH9SZFx10ibiC32-Who-88tYrBs,2220
63
- langroid/parsing/web_search.py,sha256=hGUVoSJNdpoT5rsm-ikAteMiUropHrzKaxN8EVVqO2U,2496
64
- langroid/prompts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
- langroid/prompts/dialog.py,sha256=SpfiSyofSgy2pwD1YboHR_yHO3LEEMbv6j2sm874jKo,331
66
- langroid/prompts/prompts_config.py,sha256=EMK1Fm7EmS8y3CV4AkrVgn5K4NipiM4m7J8819W1KeM,98
67
- langroid/prompts/templates.py,sha256=4X-07tnmUQ8Z_zaWRQAUUyKiErGztp3tERujqnG8sGA,6369
68
- langroid/prompts/transforms.py,sha256=GsQo1klGxUy0fACh6j0lTblk6XEl2erRnhRWlN2M4-c,2706
69
- langroid/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- langroid/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- langroid/utils/configuration.py,sha256=LT6yZcNY8vbAKFbrD-fLV2ZQQ_9wjEXWY-jg3uEjil4,2258
72
- langroid/utils/constants.py,sha256=edJ5J-sC9CeUwwNey_uLQbGbHgjX-T8XLf_J53h3Tys,484
73
- langroid/utils/docker.py,sha256=kJQOLTgM0x9j9pgIIqp0dZNZCTvoUDhp6i8tYBq1Jr0,1105
74
- langroid/utils/globals.py,sha256=UubMelOGkLy3BxByl1vprITU4dbysZmCtYBvZWL8dto,1337
75
- langroid/utils/llms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
- langroid/utils/llms/strings.py,sha256=CSAX9Z6FQOLXOzbLMe_Opqtc3ruDAKTTk7cPqc6Blh0,263
77
- langroid/utils/logging.py,sha256=xXpohbvK74_reomdkIWTeyDjGG8GT1fuU7zcLL3Ngt8,3951
78
- langroid/utils/output/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
- langroid/utils/output/printing.py,sha256=ilm__9nS3FoY1Y-6k11pIaFM5tID8Jqyfr8LxfX5QEo,1311
80
- langroid/utils/pydantic_utils.py,sha256=XxruW9rovTqn5WZCkHTmAdP4shhXWH4sEbT-kB5k8LI,251
81
- langroid/utils/system.py,sha256=NXMb4GHCx3O3EQk772zHq6l0X9XD8vP6oSL-IWPcPh4,1502
82
- langroid/utils/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- langroid/utils/web/login.py,sha256=1iz9eUAHa87vpKIkzwkmFa00avwFWivDSAr7QUhK7U0,2528
84
- langroid/utils/web/selenium_login.py,sha256=mYI6EvVmne34N9RajlsxxRqJQJvV-WG4LGp6sEECHPw,1156
85
- langroid/vector_store/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
- langroid/vector_store/base.py,sha256=zNnUT9C31zk6tn3OySnrjE_ajW7_eT85BTxfrsTMZxU,5001
87
- langroid/vector_store/chromadb.py,sha256=2vWoOwWIgeRVIMiywAl084eruBBQhkd8_XzAg-K_saU,6744
88
- langroid/vector_store/meilisearch.py,sha256=r5-2sybfE0zPt7wEO_HB7JqVI9Mf5O55uVS1L-Mx-jM,11168
89
- langroid/vector_store/qdrant_cloud.py,sha256=3im4Mip0QXLkR6wiqVsjV1QvhSElfxdFSuDKddBDQ-4,188
90
- langroid/vector_store/qdrantdb.py,sha256=PPAJRQKUgArdgPFjQfOZtX-EQwVLaJ7HTWEr-VY2og0,10865
91
- langroid-0.1.85.dist-info/LICENSE,sha256=EgVbvA6VSYgUlvC3RvPKehSg7MFaxWDsFuzLOsPPfJg,1065
92
- langroid-0.1.85.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
93
- langroid-0.1.85.dist-info/METADATA,sha256=nBNr_c3I_4dmVHjoW7XzKoE5D31o4h96TrAlTUA5a8U,36930
94
- langroid-0.1.85.dist-info/RECORD,,
File without changes