langroid 0.1.139__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 (97) hide show
  1. langroid/__init__.py +70 -0
  2. langroid/agent/__init__.py +22 -0
  3. langroid/agent/base.py +120 -33
  4. langroid/agent/batch.py +134 -35
  5. langroid/agent/callbacks/__init__.py +0 -0
  6. langroid/agent/callbacks/chainlit.py +608 -0
  7. langroid/agent/chat_agent.py +164 -100
  8. langroid/agent/chat_document.py +19 -2
  9. langroid/agent/openai_assistant.py +20 -10
  10. langroid/agent/special/__init__.py +33 -10
  11. langroid/agent/special/doc_chat_agent.py +521 -108
  12. langroid/agent/special/lance_doc_chat_agent.py +258 -0
  13. langroid/agent/special/lance_rag/__init__.py +9 -0
  14. langroid/agent/special/lance_rag/critic_agent.py +136 -0
  15. langroid/agent/special/lance_rag/lance_rag_task.py +80 -0
  16. langroid/agent/special/lance_rag/query_planner_agent.py +180 -0
  17. langroid/agent/special/lance_tools.py +44 -0
  18. langroid/agent/special/neo4j/__init__.py +0 -0
  19. langroid/agent/special/neo4j/csv_kg_chat.py +174 -0
  20. langroid/agent/special/neo4j/neo4j_chat_agent.py +370 -0
  21. langroid/agent/special/neo4j/utils/__init__.py +0 -0
  22. langroid/agent/special/neo4j/utils/system_message.py +46 -0
  23. langroid/agent/special/relevance_extractor_agent.py +23 -7
  24. langroid/agent/special/retriever_agent.py +29 -174
  25. langroid/agent/special/sql/__init__.py +7 -0
  26. langroid/agent/special/sql/sql_chat_agent.py +47 -23
  27. langroid/agent/special/sql/utils/__init__.py +11 -0
  28. langroid/agent/special/sql/utils/description_extractors.py +95 -46
  29. langroid/agent/special/sql/utils/populate_metadata.py +28 -21
  30. langroid/agent/special/table_chat_agent.py +43 -9
  31. langroid/agent/task.py +423 -114
  32. langroid/agent/tool_message.py +67 -10
  33. langroid/agent/tools/__init__.py +8 -0
  34. langroid/agent/tools/duckduckgo_search_tool.py +66 -0
  35. langroid/agent/tools/google_search_tool.py +11 -0
  36. langroid/agent/tools/metaphor_search_tool.py +67 -0
  37. langroid/agent/tools/recipient_tool.py +6 -24
  38. langroid/agent/tools/sciphi_search_rag_tool.py +79 -0
  39. langroid/cachedb/__init__.py +6 -0
  40. langroid/embedding_models/__init__.py +24 -0
  41. langroid/embedding_models/base.py +9 -1
  42. langroid/embedding_models/models.py +117 -17
  43. langroid/embedding_models/protoc/embeddings.proto +19 -0
  44. langroid/embedding_models/protoc/embeddings_pb2.py +33 -0
  45. langroid/embedding_models/protoc/embeddings_pb2.pyi +50 -0
  46. langroid/embedding_models/protoc/embeddings_pb2_grpc.py +79 -0
  47. langroid/embedding_models/remote_embeds.py +153 -0
  48. langroid/language_models/__init__.py +22 -0
  49. langroid/language_models/azure_openai.py +47 -4
  50. langroid/language_models/base.py +26 -10
  51. langroid/language_models/config.py +5 -0
  52. langroid/language_models/openai_gpt.py +407 -121
  53. langroid/language_models/prompt_formatter/__init__.py +9 -0
  54. langroid/language_models/prompt_formatter/base.py +4 -6
  55. langroid/language_models/prompt_formatter/hf_formatter.py +135 -0
  56. langroid/language_models/utils.py +10 -9
  57. langroid/mytypes.py +10 -4
  58. langroid/parsing/__init__.py +33 -1
  59. langroid/parsing/document_parser.py +259 -63
  60. langroid/parsing/image_text.py +32 -0
  61. langroid/parsing/parse_json.py +143 -0
  62. langroid/parsing/parser.py +20 -7
  63. langroid/parsing/repo_loader.py +108 -46
  64. langroid/parsing/search.py +8 -0
  65. langroid/parsing/table_loader.py +44 -0
  66. langroid/parsing/url_loader.py +59 -13
  67. langroid/parsing/urls.py +18 -9
  68. langroid/parsing/utils.py +130 -9
  69. langroid/parsing/web_search.py +73 -0
  70. langroid/prompts/__init__.py +7 -0
  71. langroid/prompts/chat-gpt4-system-prompt.md +68 -0
  72. langroid/prompts/prompts_config.py +1 -1
  73. langroid/utils/__init__.py +10 -0
  74. langroid/utils/algorithms/__init__.py +3 -0
  75. langroid/utils/configuration.py +0 -1
  76. langroid/utils/constants.py +4 -0
  77. langroid/utils/logging.py +2 -5
  78. langroid/utils/output/__init__.py +15 -2
  79. langroid/utils/output/status.py +33 -0
  80. langroid/utils/pandas_utils.py +30 -0
  81. langroid/utils/pydantic_utils.py +446 -4
  82. langroid/utils/system.py +36 -1
  83. langroid/vector_store/__init__.py +34 -2
  84. langroid/vector_store/base.py +33 -2
  85. langroid/vector_store/chromadb.py +42 -13
  86. langroid/vector_store/lancedb.py +226 -60
  87. langroid/vector_store/meilisearch.py +7 -6
  88. langroid/vector_store/momento.py +3 -2
  89. langroid/vector_store/qdrantdb.py +82 -11
  90. {langroid-0.1.139.dist-info → langroid-0.1.219.dist-info}/METADATA +190 -129
  91. langroid-0.1.219.dist-info/RECORD +127 -0
  92. langroid/agent/special/recipient_validator_agent.py +0 -157
  93. langroid/parsing/json.py +0 -64
  94. langroid/utils/web/selenium_login.py +0 -36
  95. langroid-0.1.139.dist-info/RECORD +0 -103
  96. {langroid-0.1.139.dist-info → langroid-0.1.219.dist-info}/LICENSE +0 -0
  97. {langroid-0.1.139.dist-info → langroid-0.1.219.dist-info}/WHEEL +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,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,103 +0,0 @@
1
- langroid/__init__.py,sha256=-AWkFhhW0b0paHQ11SORyIVPnXv0nyT2X_0_xh3zLjw,408
2
- langroid/agent/__init__.py,sha256=ZqDw3Ktw7XGDl6mC8DN61F71V4ckf0rBoEOydH9l6C4,428
3
- langroid/agent/base.py,sha256=-VWT3gQWgH_uGjVILLPosa5WebzZihVY_JOi_bYYNEQ,31931
4
- langroid/agent/batch.py,sha256=Cg7Qv1yGi_M9rMl38_4-hjXPsoLlZrOSXDhbOFqUcKY,5593
5
- langroid/agent/chat_agent.py,sha256=if0wV75i8I2roNpeq-4PxSxH6bwJjhxVnm61SvNy_m0,35026
6
- langroid/agent/chat_document.py,sha256=dw0m_00qJgOhbzCkEsVBAiktM6BJ62mV8_piu5GruXM,7008
7
- langroid/agent/helpers.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- langroid/agent/junk,sha256=LxfuuW7Cijsg0szAzT81OjWWv1PMNI-6w_-DspVIO2s,339
9
- langroid/agent/openai_assistant.py,sha256=8YDzpvLWWsa_l27F5136rV-TE3N4oKDjYiTfxMCsteI,32328
10
- langroid/agent/special/__init__.py,sha256=Iex-fxO7sTM2LKAOk-JQLzovk-zlzqi5PwxiMBHDz6o,681
11
- langroid/agent/special/doc_chat_agent.py,sha256=NvH6pjLem5aOfLjHhV7fwQoc4YnAPXExviEhWxaUYvg,36530
12
- langroid/agent/special/recipient_validator_agent.py,sha256=R3Rit93BNWQar_9stuDBGzmLr2W-IYOQ7oq-tlNNlps,6035
13
- langroid/agent/special/relevance_extractor_agent.py,sha256=2p5MaqwJrf9nlOkuuXpHo3ouGQuR5J73wJkHRSXgq-I,4149
14
- langroid/agent/special/retriever_agent.py,sha256=ze8jXJW9A_twsrRXVECAQCYicfjm8-a6qv1vDk41AAc,6573
15
- langroid/agent/special/sql/__init__.py,sha256=3kR5nC0wnYIzmMrr9L8RJa7JAJpbwBLx7KKygiwz0v0,111
16
- langroid/agent/special/sql/sql_chat_agent.py,sha256=Ua_gfK_1k5ct59Zkbe78bzs-2jabtFkEVx76a0pGs9Y,12867
17
- langroid/agent/special/sql/utils/__init__.py,sha256=_IBHt3iNXvPqxvDrs5_T86qdj0gPugVGnGNi6Cx7F-I,238
18
- langroid/agent/special/sql/utils/description_extractors.py,sha256=GcQ82IhKPInS_3TOqRgD4iRUQt-Ez4WG9vNHsV0V85Q,4494
19
- langroid/agent/special/sql/utils/populate_metadata.py,sha256=zRjw31a1ZXvpx9bcmbtC2mngdHl-bp1ZNHStcPG8_Qk,2712
20
- langroid/agent/special/sql/utils/system_message.py,sha256=qKLHkvQWRQodTtPLPxr1GSLUYUFASZU8x-ybV67cB68,1885
21
- langroid/agent/special/sql/utils/tools.py,sha256=6uB2424SLtmapui9ggcEr0ZTiB6_dL1-JRGgN8RK9Js,1332
22
- langroid/agent/special/table_chat_agent.py,sha256=zejrvv6GaspImVJ1oXWUTVN-h-kDjadTdBDkTRqrYKo,7691
23
- langroid/agent/task.py,sha256=ROv0M7_JkMCTNURgmeY2XprMF79RXed5RwZYpgW9IHE,36355
24
- langroid/agent/tool_message.py,sha256=b8qcO2fwkmUR49dgMzpXC9MnXdYh86I2VHFH7bv7D0w,6250
25
- langroid/agent/tools/__init__.py,sha256=6le5y_iPEHwh7Tli_0MtwCGOjy3tPQfAdfDC7WBg2e0,172
26
- langroid/agent/tools/extract_tool.py,sha256=u5lL9rKBzaLBOrRyLnTAZ97pQ1uxyLP39XsWMnpaZpw,3789
27
- langroid/agent/tools/generator_tool.py,sha256=y0fB0ZObjA0b3L0uSTtrqRCKHDUR95arBftqiUeKD2o,663
28
- langroid/agent/tools/google_search_tool.py,sha256=64F9oMNdS237BBOitrvYXN4Il_ES_fNrHkh35tBEDfA,1160
29
- langroid/agent/tools/recipient_tool.py,sha256=ULLRUs4bp0BL0hVALhy2wiyEr8XcuFJsFsPEhT0EltA,10384
30
- langroid/agent/tools/run_python_code.py,sha256=V3mHdHQYn0M0PAtyoHxjNvk6KvWWcQ4ugo0TOKc8HyI,1752
31
- langroid/agent/tools/segment_extract_tool.py,sha256=W39poS7Av2EuJ34tGKhLhzgj3zEyZnBplpSt2goRAp4,1285
32
- langroid/agent_config.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- langroid/cachedb/__init__.py,sha256=Sa7BebBsl45d6uopGomxQ87e2AflC6PqaIKHWrfzE4w,77
34
- langroid/cachedb/base.py,sha256=tdIZmdDdDMW-wVkNQdi4vMQCHP718l9JM6cDhL6odf4,1229
35
- langroid/cachedb/momento_cachedb.py,sha256=IbaYG7HgG-G18GlWsYVnLv0r2e2S48z6sl8OlJOGUfc,2998
36
- langroid/cachedb/redis_cachedb.py,sha256=uEjxephnxaL8OqPGDYZnM__fpcTsLb0WTNS_AFimkvA,4984
37
- langroid/embedding_models/__init__.py,sha256=W0ViUDBm8cxtUIUw6SH8XhOtIu8Hjy5sPF4fgZsFvwo,212
38
- langroid/embedding_models/base.py,sha256=trqzLdz3ujDuaohzg6yGMkapDCiiZahQDIzUinXTzJg,1523
39
- langroid/embedding_models/clustering.py,sha256=tZWElUqXl9Etqla0FAa7og96iDKgjqWjucZR_Egtp-A,6684
40
- langroid/embedding_models/models.py,sha256=yEG-dasyqifjmiWees7tKWBPnXnuXjEEINCR9Oo6h0Y,3403
41
- langroid/language_models/__init__.py,sha256=fQYzSFE_thHeoPy0UPwl5splMSuQm6ANVedvqCxRebg,445
42
- langroid/language_models/azure_openai.py,sha256=_OOEoZOziI3NDOH_8t3qmh8IDWoHESQe-K6UN5cGtME,3946
43
- langroid/language_models/base.py,sha256=_EOBLXU6Z3SK7wjWNS4G4rtw6aRJ5ycs9M-Sry-GX5k,20582
44
- langroid/language_models/config.py,sha256=PXcmEUq52GCDj2sekt8F9E1flWyyNjP2S0LTRs7T6Kg,269
45
- langroid/language_models/openai_assistants.py,sha256=9K-DEAL2aSWHeXj2hwCo2RAlK9_1oCPtqX2u1wISCj8,36
46
- langroid/language_models/openai_gpt.py,sha256=QhdNh8DOuMTVVmwF90fyl5jmUqqt--c94l5kNlGcqVo,39631
47
- langroid/language_models/prompt_formatter/__init__.py,sha256=wj2e6j7R9d3m63HCbSDY1vosjFuhHLQVlgBrq8iqF38,197
48
- langroid/language_models/prompt_formatter/base.py,sha256=2y_GcwhstvB5ih3haS7l5Fv79jVnFJ_vEw1jqWJzB9k,1247
49
- langroid/language_models/prompt_formatter/llama2_formatter.py,sha256=YdcO88qyBeuMENVIVvVqSYuEpvYSTndUe_jd6hVTko4,2899
50
- langroid/language_models/utils.py,sha256=3stQOt3sAdbGT70thurlxfnQ4xPxH75YjFm-jaRuXlg,4474
51
- langroid/mytypes.py,sha256=n43j4bmJLJybhvq6SIQm65Dfgbz2gOgru4Zj9zNEWYI,2502
52
- langroid/parsing/__init__.py,sha256=_EZ8iuixxU39zuaydtfjyap8g9C_c1dnrCQ0QR81U2E,340
53
- langroid/parsing/agent_chats.py,sha256=sbZRV9ujdM5QXvvuHVjIi2ysYSYlap-uqfMMUKulrW0,1068
54
- langroid/parsing/code-parsing.md,sha256=--cyyNiSZSDlIwcjAV4-shKrSiRe2ytF3AdSoS_hD2g,3294
55
- langroid/parsing/code_parser.py,sha256=BbDAzp35wkYQ9U1dpf1ARL0lVyi0tfqEc6_eox2C090,3727
56
- langroid/parsing/config.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
- langroid/parsing/document_parser.py,sha256=YC3IXQ9ErpBGBZh6Be9gfJWHcTwGTSMfNQMT5ARrj5g,14615
58
- langroid/parsing/json.py,sha256=MVqBUfInALQm1QKbcfEvLzWxBz_UztCIyGk7AK5uFPo,1650
59
- langroid/parsing/para_sentence_split.py,sha256=AJBzZojP3zpB-_IMiiHismhqcvkrVBQ3ZINoQyx_bE4,2000
60
- langroid/parsing/parser.py,sha256=qbIsXS62s_JbzwVjyG6g4ly_Y4GHao6k2gykCY214P4,10283
61
- langroid/parsing/repo_loader.py,sha256=4qCyRRHCKIYd8F1ghT-D8ko1C2sXpF7UYP1L5Im1hRE,27705
62
- langroid/parsing/search.py,sha256=xmQdAdTIwZ0REEUeQVFlGZlqf7k8Poah7-ALuyW7Ov0,8440
63
- langroid/parsing/spider.py,sha256=w_mHR1B4KOmxsBLoVI8kMkMTEbwTzeK3ath9fOMJrTk,3043
64
- langroid/parsing/table_loader.py,sha256=uqbupGr4y_7os18RtaY5GpD0hWcgzROoNy8dQIHB4kc,1767
65
- langroid/parsing/url_loader.py,sha256=RZCX1RJuQpTatJjBOU74_gJ5Ab7xwarRmFh5ON4n_G4,2279
66
- langroid/parsing/url_loader_cookies.py,sha256=Lg4sNpRz9MByWq2mde6T0hKv68VZSV3mtMjNEHuFeSU,2327
67
- langroid/parsing/urls.py,sha256=Nv4yCWQLLBEjaiRdaZZVQNBEl_cfK_V6cVuPm91wGtU,7686
68
- langroid/parsing/utils.py,sha256=nuCW_sRe5js0d-K6EtDEIbFQpMicS1ntr3FXxtYtGzw,7639
69
- langroid/parsing/web_search.py,sha256=hGUVoSJNdpoT5rsm-ikAteMiUropHrzKaxN8EVVqO2U,2496
70
- langroid/prompts/__init__.py,sha256=aTW86CbDZM7tntqiTVeNLYJv7pbRDcKOI3qHVXCEHUY,99
71
- langroid/prompts/dialog.py,sha256=SpfiSyofSgy2pwD1YboHR_yHO3LEEMbv6j2sm874jKo,331
72
- langroid/prompts/prompts_config.py,sha256=EMK1Fm7EmS8y3CV4AkrVgn5K4NipiM4m7J8819W1KeM,98
73
- langroid/prompts/templates.py,sha256=4X-07tnmUQ8Z_zaWRQAUUyKiErGztp3tERujqnG8sGA,6369
74
- langroid/prompts/transforms.py,sha256=GsQo1klGxUy0fACh6j0lTblk6XEl2erRnhRWlN2M4-c,2706
75
- langroid/utils/__init__.py,sha256=3aMfdwFizpl3W2H5Q-TMqUFqMoYgec1NiX-caSnClmQ,167
76
- langroid/utils/algorithms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
- langroid/utils/algorithms/graph.py,sha256=JbdpPnUOhw4-D6O7ou101JLA3xPCD0Lr3qaPoFCaRfo,2866
78
- langroid/utils/configuration.py,sha256=vqGTEB-WP9ekDF6L8j8T1gHxxhBUmdPouKeszI9hMz8,3275
79
- langroid/utils/constants.py,sha256=edJ5J-sC9CeUwwNey_uLQbGbHgjX-T8XLf_J53h3Tys,484
80
- langroid/utils/docker.py,sha256=kJQOLTgM0x9j9pgIIqp0dZNZCTvoUDhp6i8tYBq1Jr0,1105
81
- langroid/utils/globals.py,sha256=VkTHhlqSz86oOPq65sjul0XU8I52UNaFC5vwybMQ74w,1343
82
- langroid/utils/llms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- langroid/utils/llms/strings.py,sha256=CSAX9Z6FQOLXOzbLMe_Opqtc3ruDAKTTk7cPqc6Blh0,263
84
- langroid/utils/logging.py,sha256=xXpohbvK74_reomdkIWTeyDjGG8GT1fuU7zcLL3Ngt8,3951
85
- langroid/utils/output/__init__.py,sha256=IpfqnCkfXa4HaOx39EMUhXuA7GPZFd7N_QMm1n43C_I,174
86
- langroid/utils/output/printing.py,sha256=5EsYB1O4qKhocW19aebOUzK82RD9U5nygbY21yo8gfg,2872
87
- langroid/utils/pydantic_utils.py,sha256=00ajeBTvxJEOyqd7M7FveRz7oa9wdQ0QFKvOjy_ZfRE,6296
88
- langroid/utils/system.py,sha256=x9204H1-6EubDe8-9yX87KZSmRCkf0puXQv91QOetF4,3326
89
- langroid/utils/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
- langroid/utils/web/login.py,sha256=1iz9eUAHa87vpKIkzwkmFa00avwFWivDSAr7QUhK7U0,2528
91
- langroid/utils/web/selenium_login.py,sha256=mYI6EvVmne34N9RajlsxxRqJQJvV-WG4LGp6sEECHPw,1156
92
- langroid/vector_store/__init__.py,sha256=NhAXOCKX_x2whfghOn44e0O3-vV0nJRz6ZLsCBqYFyQ,242
93
- langroid/vector_store/base.py,sha256=60XkAcX7OLkseYE66p3XOcXs7KB9udJbOV5IBfzNBDs,12188
94
- langroid/vector_store/chromadb.py,sha256=rmgATcapEN6mYH5hmuxbgkDpCijFJc3cvMsBjyZOxH4,7075
95
- langroid/vector_store/lancedb.py,sha256=wofT7kOfH3FtulqMEKCvSBxoqOjduYH7ns5ygicnWTc,11275
96
- langroid/vector_store/meilisearch.py,sha256=oS_ZXWnqsQvElQADPiijN_FVJL16RjvL_AWAFy_wb9Q,11232
97
- langroid/vector_store/momento.py,sha256=yEYlNlTzWlH6zMPANK8PgBEHjEIz5RoAM6wxOl5G7Cs,10007
98
- langroid/vector_store/qdrant_cloud.py,sha256=3im4Mip0QXLkR6wiqVsjV1QvhSElfxdFSuDKddBDQ-4,188
99
- langroid/vector_store/qdrantdb.py,sha256=hte3nsmjU6_KkR-Fr82d43jKhBOL0iaB-UbekeDpggA,11450
100
- langroid-0.1.139.dist-info/LICENSE,sha256=EgVbvA6VSYgUlvC3RvPKehSg7MFaxWDsFuzLOsPPfJg,1065
101
- langroid-0.1.139.dist-info/METADATA,sha256=Bdz5mGLNX-Gna9LDK_L6p-iAOmMfM36GOGU1-4hAJYs,42653
102
- langroid-0.1.139.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
103
- langroid-0.1.139.dist-info/RECORD,,