langchain 0.4.0.dev0__py3-none-any.whl → 1.0.0__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.
Potentially problematic release.
This version of langchain might be problematic. Click here for more details.
- langchain/__init__.py +2 -452
- langchain/agents/__init__.py +9 -178
- langchain/agents/factory.py +1582 -0
- langchain/agents/middleware/__init__.py +80 -0
- langchain/agents/middleware/_execution.py +388 -0
- langchain/agents/middleware/_redaction.py +350 -0
- langchain/agents/middleware/context_editing.py +274 -0
- langchain/agents/middleware/file_search.py +382 -0
- langchain/agents/middleware/human_in_the_loop.py +351 -0
- langchain/agents/middleware/model_call_limit.py +210 -0
- langchain/agents/middleware/model_fallback.py +137 -0
- langchain/agents/middleware/pii.py +317 -0
- langchain/agents/middleware/shell_tool.py +718 -0
- langchain/agents/middleware/summarization.py +249 -0
- langchain/agents/middleware/todo.py +219 -0
- langchain/agents/middleware/tool_call_limit.py +333 -0
- langchain/agents/middleware/tool_emulator.py +200 -0
- langchain/agents/middleware/tool_retry.py +384 -0
- langchain/agents/middleware/tool_selection.py +310 -0
- langchain/agents/middleware/types.py +1572 -0
- langchain/agents/structured_output.py +426 -0
- langchain/chat_models/__init__.py +7 -72
- langchain/chat_models/base.py +268 -358
- langchain/embeddings/__init__.py +7 -217
- langchain/embeddings/base.py +31 -43
- langchain/messages/__init__.py +72 -0
- langchain/rate_limiters/__init__.py +13 -0
- langchain/tools/__init__.py +17 -197
- langchain/tools/tool_node.py +1700 -0
- langchain-1.0.0.dist-info/METADATA +87 -0
- langchain-1.0.0.dist-info/RECORD +34 -0
- {langchain-0.4.0.dev0.dist-info → langchain-1.0.0.dist-info}/WHEEL +1 -1
- langchain/_api/__init__.py +0 -28
- langchain/_api/deprecation.py +0 -32
- langchain/_api/interactive_env.py +0 -5
- langchain/_api/module_import.py +0 -153
- langchain/_api/path.py +0 -3
- langchain/adapters/__init__.py +0 -0
- langchain/adapters/openai.py +0 -63
- langchain/agents/agent.py +0 -1824
- langchain/agents/agent_iterator.py +0 -438
- langchain/agents/agent_toolkits/__init__.py +0 -167
- langchain/agents/agent_toolkits/ainetwork/__init__.py +0 -1
- langchain/agents/agent_toolkits/ainetwork/toolkit.py +0 -25
- langchain/agents/agent_toolkits/amadeus/toolkit.py +0 -23
- langchain/agents/agent_toolkits/azure_cognitive_services.py +0 -29
- langchain/agents/agent_toolkits/base.py +0 -3
- langchain/agents/agent_toolkits/clickup/__init__.py +0 -0
- langchain/agents/agent_toolkits/clickup/toolkit.py +0 -25
- langchain/agents/agent_toolkits/conversational_retrieval/__init__.py +0 -0
- langchain/agents/agent_toolkits/conversational_retrieval/openai_functions.py +0 -87
- langchain/agents/agent_toolkits/conversational_retrieval/tool.py +0 -3
- langchain/agents/agent_toolkits/csv/__init__.py +0 -28
- langchain/agents/agent_toolkits/file_management/__init__.py +0 -31
- langchain/agents/agent_toolkits/file_management/toolkit.py +0 -29
- langchain/agents/agent_toolkits/github/__init__.py +0 -1
- langchain/agents/agent_toolkits/github/toolkit.py +0 -69
- langchain/agents/agent_toolkits/gitlab/__init__.py +0 -1
- langchain/agents/agent_toolkits/gitlab/toolkit.py +0 -25
- langchain/agents/agent_toolkits/gmail/__init__.py +0 -1
- langchain/agents/agent_toolkits/gmail/toolkit.py +0 -23
- langchain/agents/agent_toolkits/jira/__init__.py +0 -1
- langchain/agents/agent_toolkits/jira/toolkit.py +0 -23
- langchain/agents/agent_toolkits/json/__init__.py +0 -1
- langchain/agents/agent_toolkits/json/base.py +0 -25
- langchain/agents/agent_toolkits/json/prompt.py +0 -24
- langchain/agents/agent_toolkits/json/toolkit.py +0 -23
- langchain/agents/agent_toolkits/multion/__init__.py +0 -1
- langchain/agents/agent_toolkits/multion/toolkit.py +0 -25
- langchain/agents/agent_toolkits/nasa/__init__.py +0 -1
- langchain/agents/agent_toolkits/nasa/toolkit.py +0 -23
- langchain/agents/agent_toolkits/nla/__init__.py +0 -0
- langchain/agents/agent_toolkits/nla/tool.py +0 -23
- langchain/agents/agent_toolkits/nla/toolkit.py +0 -23
- langchain/agents/agent_toolkits/office365/__init__.py +0 -1
- langchain/agents/agent_toolkits/office365/toolkit.py +0 -25
- langchain/agents/agent_toolkits/openapi/__init__.py +0 -1
- langchain/agents/agent_toolkits/openapi/base.py +0 -25
- langchain/agents/agent_toolkits/openapi/planner.py +0 -52
- langchain/agents/agent_toolkits/openapi/planner_prompt.py +0 -103
- langchain/agents/agent_toolkits/openapi/prompt.py +0 -29
- langchain/agents/agent_toolkits/openapi/spec.py +0 -30
- langchain/agents/agent_toolkits/openapi/toolkit.py +0 -30
- langchain/agents/agent_toolkits/pandas/__init__.py +0 -28
- langchain/agents/agent_toolkits/playwright/__init__.py +0 -29
- langchain/agents/agent_toolkits/playwright/toolkit.py +0 -27
- langchain/agents/agent_toolkits/powerbi/__init__.py +0 -1
- langchain/agents/agent_toolkits/powerbi/base.py +0 -25
- langchain/agents/agent_toolkits/powerbi/chat_base.py +0 -27
- langchain/agents/agent_toolkits/powerbi/prompt.py +0 -36
- langchain/agents/agent_toolkits/powerbi/toolkit.py +0 -25
- langchain/agents/agent_toolkits/python/__init__.py +0 -28
- langchain/agents/agent_toolkits/slack/__init__.py +0 -1
- langchain/agents/agent_toolkits/slack/toolkit.py +0 -23
- langchain/agents/agent_toolkits/spark/__init__.py +0 -28
- langchain/agents/agent_toolkits/spark_sql/__init__.py +0 -1
- langchain/agents/agent_toolkits/spark_sql/base.py +0 -25
- langchain/agents/agent_toolkits/spark_sql/prompt.py +0 -27
- langchain/agents/agent_toolkits/spark_sql/toolkit.py +0 -25
- langchain/agents/agent_toolkits/sql/__init__.py +0 -1
- langchain/agents/agent_toolkits/sql/base.py +0 -23
- langchain/agents/agent_toolkits/sql/prompt.py +0 -29
- langchain/agents/agent_toolkits/sql/toolkit.py +0 -25
- langchain/agents/agent_toolkits/steam/__init__.py +0 -1
- langchain/agents/agent_toolkits/steam/toolkit.py +0 -23
- langchain/agents/agent_toolkits/vectorstore/__init__.py +0 -1
- langchain/agents/agent_toolkits/vectorstore/base.py +0 -219
- langchain/agents/agent_toolkits/vectorstore/prompt.py +0 -11
- langchain/agents/agent_toolkits/vectorstore/toolkit.py +0 -97
- langchain/agents/agent_toolkits/xorbits/__init__.py +0 -28
- langchain/agents/agent_toolkits/zapier/__init__.py +0 -1
- langchain/agents/agent_toolkits/zapier/toolkit.py +0 -25
- langchain/agents/agent_types.py +0 -57
- langchain/agents/chat/__init__.py +0 -0
- langchain/agents/chat/base.py +0 -180
- langchain/agents/chat/output_parser.py +0 -74
- langchain/agents/chat/prompt.py +0 -29
- langchain/agents/conversational/__init__.py +0 -1
- langchain/agents/conversational/base.py +0 -178
- langchain/agents/conversational/output_parser.py +0 -51
- langchain/agents/conversational/prompt.py +0 -35
- langchain/agents/conversational_chat/__init__.py +0 -1
- langchain/agents/conversational_chat/base.py +0 -183
- langchain/agents/conversational_chat/output_parser.py +0 -57
- langchain/agents/conversational_chat/prompt.py +0 -56
- langchain/agents/format_scratchpad/__init__.py +0 -25
- langchain/agents/format_scratchpad/log.py +0 -25
- langchain/agents/format_scratchpad/log_to_messages.py +0 -26
- langchain/agents/format_scratchpad/openai_functions.py +0 -80
- langchain/agents/format_scratchpad/openai_tools.py +0 -5
- langchain/agents/format_scratchpad/tools.py +0 -65
- langchain/agents/format_scratchpad/xml.py +0 -52
- langchain/agents/initialize.py +0 -105
- langchain/agents/json_chat/__init__.py +0 -0
- langchain/agents/json_chat/base.py +0 -196
- langchain/agents/json_chat/prompt.py +0 -8
- langchain/agents/load_tools.py +0 -13
- langchain/agents/loading.py +0 -148
- langchain/agents/mrkl/__init__.py +0 -1
- langchain/agents/mrkl/base.py +0 -218
- langchain/agents/mrkl/output_parser.py +0 -103
- langchain/agents/mrkl/prompt.py +0 -15
- langchain/agents/openai_assistant/__init__.py +0 -3
- langchain/agents/openai_assistant/base.py +0 -818
- langchain/agents/openai_functions_agent/__init__.py +0 -0
- langchain/agents/openai_functions_agent/agent_token_buffer_memory.py +0 -103
- langchain/agents/openai_functions_agent/base.py +0 -382
- langchain/agents/openai_functions_multi_agent/__init__.py +0 -0
- langchain/agents/openai_functions_multi_agent/base.py +0 -337
- langchain/agents/openai_tools/__init__.py +0 -0
- langchain/agents/openai_tools/base.py +0 -109
- langchain/agents/output_parsers/__init__.py +0 -35
- langchain/agents/output_parsers/json.py +0 -64
- langchain/agents/output_parsers/openai_functions.py +0 -103
- langchain/agents/output_parsers/openai_tools.py +0 -77
- langchain/agents/output_parsers/react_json_single_input.py +0 -87
- langchain/agents/output_parsers/react_single_input.py +0 -102
- langchain/agents/output_parsers/self_ask.py +0 -53
- langchain/agents/output_parsers/tools.py +0 -121
- langchain/agents/output_parsers/xml.py +0 -126
- langchain/agents/react/__init__.py +0 -1
- langchain/agents/react/agent.py +0 -145
- langchain/agents/react/base.py +0 -189
- langchain/agents/react/output_parser.py +0 -35
- langchain/agents/react/textworld_prompt.py +0 -51
- langchain/agents/react/wiki_prompt.py +0 -70
- langchain/agents/schema.py +0 -37
- langchain/agents/self_ask_with_search/__init__.py +0 -4
- langchain/agents/self_ask_with_search/base.py +0 -219
- langchain/agents/self_ask_with_search/output_parser.py +0 -4
- langchain/agents/self_ask_with_search/prompt.py +0 -43
- langchain/agents/structured_chat/__init__.py +0 -0
- langchain/agents/structured_chat/base.py +0 -309
- langchain/agents/structured_chat/output_parser.py +0 -112
- langchain/agents/structured_chat/prompt.py +0 -34
- langchain/agents/tool_calling_agent/__init__.py +0 -0
- langchain/agents/tool_calling_agent/base.py +0 -111
- langchain/agents/tools.py +0 -50
- langchain/agents/types.py +0 -27
- langchain/agents/utils.py +0 -19
- langchain/agents/xml/__init__.py +0 -0
- langchain/agents/xml/base.py +0 -237
- langchain/agents/xml/prompt.py +0 -21
- langchain/base_language.py +0 -7
- langchain/cache.py +0 -72
- langchain/callbacks/__init__.py +0 -139
- langchain/callbacks/aim_callback.py +0 -33
- langchain/callbacks/argilla_callback.py +0 -25
- langchain/callbacks/arize_callback.py +0 -25
- langchain/callbacks/arthur_callback.py +0 -25
- langchain/callbacks/base.py +0 -29
- langchain/callbacks/clearml_callback.py +0 -25
- langchain/callbacks/comet_ml_callback.py +0 -25
- langchain/callbacks/confident_callback.py +0 -25
- langchain/callbacks/context_callback.py +0 -25
- langchain/callbacks/file.py +0 -3
- langchain/callbacks/flyte_callback.py +0 -25
- langchain/callbacks/human.py +0 -33
- langchain/callbacks/infino_callback.py +0 -25
- langchain/callbacks/labelstudio_callback.py +0 -33
- langchain/callbacks/llmonitor_callback.py +0 -27
- langchain/callbacks/manager.py +0 -89
- langchain/callbacks/mlflow_callback.py +0 -38
- langchain/callbacks/openai_info.py +0 -25
- langchain/callbacks/promptlayer_callback.py +0 -27
- langchain/callbacks/sagemaker_callback.py +0 -27
- langchain/callbacks/stdout.py +0 -3
- langchain/callbacks/streaming_aiter.py +0 -86
- langchain/callbacks/streaming_aiter_final_only.py +0 -100
- langchain/callbacks/streaming_stdout.py +0 -5
- langchain/callbacks/streaming_stdout_final_only.py +0 -96
- langchain/callbacks/streamlit/__init__.py +0 -86
- langchain/callbacks/streamlit/mutable_expander.py +0 -33
- langchain/callbacks/streamlit/streamlit_callback_handler.py +0 -49
- langchain/callbacks/tracers/__init__.py +0 -38
- langchain/callbacks/tracers/base.py +0 -6
- langchain/callbacks/tracers/comet.py +0 -30
- langchain/callbacks/tracers/evaluation.py +0 -8
- langchain/callbacks/tracers/langchain.py +0 -8
- langchain/callbacks/tracers/langchain_v1.py +0 -3
- langchain/callbacks/tracers/log_stream.py +0 -9
- langchain/callbacks/tracers/logging.py +0 -57
- langchain/callbacks/tracers/root_listeners.py +0 -3
- langchain/callbacks/tracers/run_collector.py +0 -3
- langchain/callbacks/tracers/schemas.py +0 -27
- langchain/callbacks/tracers/stdout.py +0 -6
- langchain/callbacks/tracers/wandb.py +0 -27
- langchain/callbacks/trubrics_callback.py +0 -25
- langchain/callbacks/utils.py +0 -48
- langchain/callbacks/wandb_callback.py +0 -25
- langchain/callbacks/whylabs_callback.py +0 -25
- langchain/chains/__init__.py +0 -96
- langchain/chains/api/__init__.py +0 -1
- langchain/chains/api/base.py +0 -398
- langchain/chains/api/news_docs.py +0 -31
- langchain/chains/api/open_meteo_docs.py +0 -32
- langchain/chains/api/openapi/__init__.py +0 -0
- langchain/chains/api/openapi/chain.py +0 -23
- langchain/chains/api/openapi/prompts.py +0 -27
- langchain/chains/api/openapi/requests_chain.py +0 -29
- langchain/chains/api/openapi/response_chain.py +0 -29
- langchain/chains/api/podcast_docs.py +0 -27
- langchain/chains/api/prompt.py +0 -35
- langchain/chains/api/tmdb_docs.py +0 -36
- langchain/chains/base.py +0 -806
- langchain/chains/chat_vector_db/__init__.py +0 -0
- langchain/chains/chat_vector_db/prompts.py +0 -19
- langchain/chains/combine_documents/__init__.py +0 -15
- langchain/chains/combine_documents/base.py +0 -293
- langchain/chains/combine_documents/map_reduce.py +0 -303
- langchain/chains/combine_documents/map_rerank.py +0 -249
- langchain/chains/combine_documents/reduce.py +0 -382
- langchain/chains/combine_documents/refine.py +0 -237
- langchain/chains/combine_documents/stuff.py +0 -292
- langchain/chains/constitutional_ai/__init__.py +0 -2
- langchain/chains/constitutional_ai/base.py +0 -328
- langchain/chains/constitutional_ai/models.py +0 -11
- langchain/chains/constitutional_ai/principles.py +0 -278
- langchain/chains/constitutional_ai/prompts.py +0 -120
- langchain/chains/conversation/__init__.py +0 -1
- langchain/chains/conversation/base.py +0 -146
- langchain/chains/conversation/memory.py +0 -45
- langchain/chains/conversation/prompt.py +0 -28
- langchain/chains/conversational_retrieval/__init__.py +0 -1
- langchain/chains/conversational_retrieval/base.py +0 -576
- langchain/chains/conversational_retrieval/prompts.py +0 -19
- langchain/chains/elasticsearch_database/__init__.py +0 -3
- langchain/chains/elasticsearch_database/base.py +0 -212
- langchain/chains/elasticsearch_database/prompts.py +0 -35
- langchain/chains/ernie_functions/__init__.py +0 -44
- langchain/chains/ernie_functions/base.py +0 -49
- langchain/chains/example_generator.py +0 -22
- langchain/chains/flare/__init__.py +0 -1
- langchain/chains/flare/base.py +0 -284
- langchain/chains/flare/prompts.py +0 -46
- langchain/chains/graph_qa/__init__.py +0 -0
- langchain/chains/graph_qa/arangodb.py +0 -23
- langchain/chains/graph_qa/base.py +0 -23
- langchain/chains/graph_qa/cypher.py +0 -39
- langchain/chains/graph_qa/cypher_utils.py +0 -27
- langchain/chains/graph_qa/falkordb.py +0 -29
- langchain/chains/graph_qa/gremlin.py +0 -36
- langchain/chains/graph_qa/hugegraph.py +0 -23
- langchain/chains/graph_qa/kuzu.py +0 -29
- langchain/chains/graph_qa/nebulagraph.py +0 -23
- langchain/chains/graph_qa/neptune_cypher.py +0 -39
- langchain/chains/graph_qa/neptune_sparql.py +0 -36
- langchain/chains/graph_qa/ontotext_graphdb.py +0 -25
- langchain/chains/graph_qa/prompts.py +0 -96
- langchain/chains/graph_qa/sparql.py +0 -23
- langchain/chains/history_aware_retriever.py +0 -68
- langchain/chains/hyde/__init__.py +0 -4
- langchain/chains/hyde/base.py +0 -124
- langchain/chains/hyde/prompts.py +0 -46
- langchain/chains/llm.py +0 -447
- langchain/chains/llm_bash/__init__.py +0 -10
- langchain/chains/llm_checker/__init__.py +0 -4
- langchain/chains/llm_checker/base.py +0 -205
- langchain/chains/llm_checker/prompt.py +0 -30
- langchain/chains/llm_math/__init__.py +0 -4
- langchain/chains/llm_math/base.py +0 -319
- langchain/chains/llm_math/prompt.py +0 -43
- langchain/chains/llm_requests.py +0 -23
- langchain/chains/llm_summarization_checker/__init__.py +0 -7
- langchain/chains/llm_summarization_checker/base.py +0 -217
- langchain/chains/llm_summarization_checker/prompts/are_all_true_prompt.txt +0 -38
- langchain/chains/llm_summarization_checker/prompts/check_facts.txt +0 -10
- langchain/chains/llm_summarization_checker/prompts/create_facts.txt +0 -10
- langchain/chains/llm_summarization_checker/prompts/revise_summary.txt +0 -17
- langchain/chains/llm_symbolic_math/__init__.py +0 -10
- langchain/chains/loading.py +0 -734
- langchain/chains/mapreduce.py +0 -121
- langchain/chains/moderation.py +0 -135
- langchain/chains/natbot/__init__.py +0 -4
- langchain/chains/natbot/base.py +0 -165
- langchain/chains/natbot/crawler.py +0 -472
- langchain/chains/natbot/prompt.py +0 -143
- langchain/chains/openai_functions/__init__.py +0 -44
- langchain/chains/openai_functions/base.py +0 -237
- langchain/chains/openai_functions/citation_fuzzy_match.py +0 -169
- langchain/chains/openai_functions/extraction.py +0 -197
- langchain/chains/openai_functions/openapi.py +0 -409
- langchain/chains/openai_functions/qa_with_structure.py +0 -142
- langchain/chains/openai_functions/tagging.py +0 -174
- langchain/chains/openai_functions/utils.py +0 -40
- langchain/chains/openai_tools/__init__.py +0 -3
- langchain/chains/openai_tools/extraction.py +0 -79
- langchain/chains/prompt_selector.py +0 -65
- langchain/chains/qa_generation/__init__.py +0 -0
- langchain/chains/qa_generation/base.py +0 -128
- langchain/chains/qa_generation/prompt.py +0 -50
- langchain/chains/qa_with_sources/__init__.py +0 -5
- langchain/chains/qa_with_sources/base.py +0 -266
- langchain/chains/qa_with_sources/loading.py +0 -209
- langchain/chains/qa_with_sources/map_reduce_prompt.py +0 -54
- langchain/chains/qa_with_sources/refine_prompts.py +0 -37
- langchain/chains/qa_with_sources/retrieval.py +0 -75
- langchain/chains/qa_with_sources/stuff_prompt.py +0 -43
- langchain/chains/qa_with_sources/vector_db.py +0 -88
- langchain/chains/query_constructor/__init__.py +0 -3
- langchain/chains/query_constructor/base.py +0 -378
- langchain/chains/query_constructor/ir.py +0 -23
- langchain/chains/query_constructor/parser.py +0 -272
- langchain/chains/query_constructor/prompt.py +0 -226
- langchain/chains/query_constructor/schema.py +0 -14
- langchain/chains/question_answering/__init__.py +0 -6
- langchain/chains/question_answering/chain.py +0 -279
- langchain/chains/question_answering/map_reduce_prompt.py +0 -80
- langchain/chains/question_answering/map_rerank_prompt.py +0 -66
- langchain/chains/question_answering/refine_prompts.py +0 -72
- langchain/chains/question_answering/stuff_prompt.py +0 -33
- langchain/chains/retrieval.py +0 -67
- langchain/chains/retrieval_qa/__init__.py +0 -1
- langchain/chains/retrieval_qa/base.py +0 -374
- langchain/chains/retrieval_qa/prompt.py +0 -11
- langchain/chains/router/__init__.py +0 -12
- langchain/chains/router/base.py +0 -154
- langchain/chains/router/embedding_router.py +0 -96
- langchain/chains/router/llm_router.py +0 -198
- langchain/chains/router/multi_prompt.py +0 -184
- langchain/chains/router/multi_prompt_prompt.py +0 -32
- langchain/chains/router/multi_retrieval_prompt.py +0 -30
- langchain/chains/router/multi_retrieval_qa.py +0 -127
- langchain/chains/sequential.py +0 -220
- langchain/chains/sql_database/__init__.py +0 -1
- langchain/chains/sql_database/prompt.py +0 -282
- langchain/chains/sql_database/query.py +0 -167
- langchain/chains/structured_output/__init__.py +0 -6
- langchain/chains/structured_output/base.py +0 -584
- langchain/chains/summarize/__init__.py +0 -6
- langchain/chains/summarize/chain.py +0 -174
- langchain/chains/summarize/map_reduce_prompt.py +0 -10
- langchain/chains/summarize/refine_prompts.py +0 -23
- langchain/chains/summarize/stuff_prompt.py +0 -10
- langchain/chains/transform.py +0 -88
- langchain/chat_loaders/__init__.py +0 -19
- langchain/chat_loaders/base.py +0 -3
- langchain/chat_loaders/facebook_messenger.py +0 -32
- langchain/chat_loaders/gmail.py +0 -23
- langchain/chat_loaders/imessage.py +0 -23
- langchain/chat_loaders/langsmith.py +0 -30
- langchain/chat_loaders/slack.py +0 -23
- langchain/chat_loaders/telegram.py +0 -23
- langchain/chat_loaders/utils.py +0 -36
- langchain/chat_loaders/whatsapp.py +0 -23
- langchain/chat_models/anthropic.py +0 -30
- langchain/chat_models/anyscale.py +0 -23
- langchain/chat_models/azure_openai.py +0 -23
- langchain/chat_models/azureml_endpoint.py +0 -30
- langchain/chat_models/baichuan.py +0 -23
- langchain/chat_models/baidu_qianfan_endpoint.py +0 -27
- langchain/chat_models/bedrock.py +0 -27
- langchain/chat_models/cohere.py +0 -23
- langchain/chat_models/databricks.py +0 -23
- langchain/chat_models/ernie.py +0 -23
- langchain/chat_models/everlyai.py +0 -23
- langchain/chat_models/fake.py +0 -30
- langchain/chat_models/fireworks.py +0 -23
- langchain/chat_models/gigachat.py +0 -23
- langchain/chat_models/google_palm.py +0 -30
- langchain/chat_models/human.py +0 -23
- langchain/chat_models/hunyuan.py +0 -23
- langchain/chat_models/javelin_ai_gateway.py +0 -30
- langchain/chat_models/jinachat.py +0 -23
- langchain/chat_models/konko.py +0 -23
- langchain/chat_models/litellm.py +0 -30
- langchain/chat_models/meta.py +0 -25
- langchain/chat_models/minimax.py +0 -23
- langchain/chat_models/mlflow.py +0 -23
- langchain/chat_models/mlflow_ai_gateway.py +0 -30
- langchain/chat_models/ollama.py +0 -23
- langchain/chat_models/openai.py +0 -23
- langchain/chat_models/pai_eas_endpoint.py +0 -25
- langchain/chat_models/promptlayer_openai.py +0 -25
- langchain/chat_models/tongyi.py +0 -23
- langchain/chat_models/vertexai.py +0 -23
- langchain/chat_models/volcengine_maas.py +0 -30
- langchain/chat_models/yandex.py +0 -23
- langchain/docstore/__init__.py +0 -48
- langchain/docstore/arbitrary_fn.py +0 -23
- langchain/docstore/base.py +0 -27
- langchain/docstore/document.py +0 -3
- langchain/docstore/in_memory.py +0 -23
- langchain/docstore/wikipedia.py +0 -23
- langchain/document_loaders/__init__.py +0 -553
- langchain/document_loaders/acreom.py +0 -23
- langchain/document_loaders/airbyte.py +0 -48
- langchain/document_loaders/airbyte_json.py +0 -23
- langchain/document_loaders/airtable.py +0 -23
- langchain/document_loaders/apify_dataset.py +0 -23
- langchain/document_loaders/arcgis_loader.py +0 -23
- langchain/document_loaders/arxiv.py +0 -23
- langchain/document_loaders/assemblyai.py +0 -28
- langchain/document_loaders/async_html.py +0 -23
- langchain/document_loaders/azlyrics.py +0 -23
- langchain/document_loaders/azure_ai_data.py +0 -23
- langchain/document_loaders/azure_blob_storage_container.py +0 -25
- langchain/document_loaders/azure_blob_storage_file.py +0 -25
- langchain/document_loaders/baiducloud_bos_directory.py +0 -29
- langchain/document_loaders/baiducloud_bos_file.py +0 -27
- langchain/document_loaders/base.py +0 -3
- langchain/document_loaders/base_o365.py +0 -23
- langchain/document_loaders/bibtex.py +0 -23
- langchain/document_loaders/bigquery.py +0 -23
- langchain/document_loaders/bilibili.py +0 -23
- langchain/document_loaders/blackboard.py +0 -23
- langchain/document_loaders/blob_loaders/__init__.py +0 -36
- langchain/document_loaders/blob_loaders/file_system.py +0 -23
- langchain/document_loaders/blob_loaders/schema.py +0 -26
- langchain/document_loaders/blob_loaders/youtube_audio.py +0 -23
- langchain/document_loaders/blockchain.py +0 -28
- langchain/document_loaders/brave_search.py +0 -23
- langchain/document_loaders/browserless.py +0 -23
- langchain/document_loaders/chatgpt.py +0 -28
- langchain/document_loaders/chromium.py +0 -23
- langchain/document_loaders/college_confidential.py +0 -25
- langchain/document_loaders/concurrent.py +0 -23
- langchain/document_loaders/confluence.py +0 -28
- langchain/document_loaders/conllu.py +0 -23
- langchain/document_loaders/couchbase.py +0 -23
- langchain/document_loaders/csv_loader.py +0 -27
- langchain/document_loaders/cube_semantic.py +0 -23
- langchain/document_loaders/datadog_logs.py +0 -23
- langchain/document_loaders/dataframe.py +0 -28
- langchain/document_loaders/diffbot.py +0 -23
- langchain/document_loaders/directory.py +0 -23
- langchain/document_loaders/discord.py +0 -23
- langchain/document_loaders/docugami.py +0 -23
- langchain/document_loaders/docusaurus.py +0 -23
- langchain/document_loaders/dropbox.py +0 -23
- langchain/document_loaders/duckdb_loader.py +0 -23
- langchain/document_loaders/email.py +0 -30
- langchain/document_loaders/epub.py +0 -23
- langchain/document_loaders/etherscan.py +0 -23
- langchain/document_loaders/evernote.py +0 -23
- langchain/document_loaders/excel.py +0 -23
- langchain/document_loaders/facebook_chat.py +0 -28
- langchain/document_loaders/fauna.py +0 -23
- langchain/document_loaders/figma.py +0 -23
- langchain/document_loaders/gcs_directory.py +0 -23
- langchain/document_loaders/gcs_file.py +0 -23
- langchain/document_loaders/generic.py +0 -23
- langchain/document_loaders/geodataframe.py +0 -23
- langchain/document_loaders/git.py +0 -23
- langchain/document_loaders/gitbook.py +0 -23
- langchain/document_loaders/github.py +0 -28
- langchain/document_loaders/google_speech_to_text.py +0 -23
- langchain/document_loaders/googledrive.py +0 -23
- langchain/document_loaders/gutenberg.py +0 -23
- langchain/document_loaders/helpers.py +0 -30
- langchain/document_loaders/hn.py +0 -23
- langchain/document_loaders/html.py +0 -23
- langchain/document_loaders/html_bs.py +0 -23
- langchain/document_loaders/hugging_face_dataset.py +0 -23
- langchain/document_loaders/ifixit.py +0 -23
- langchain/document_loaders/image.py +0 -23
- langchain/document_loaders/image_captions.py +0 -23
- langchain/document_loaders/imsdb.py +0 -23
- langchain/document_loaders/iugu.py +0 -23
- langchain/document_loaders/joplin.py +0 -23
- langchain/document_loaders/json_loader.py +0 -23
- langchain/document_loaders/lakefs.py +0 -33
- langchain/document_loaders/larksuite.py +0 -23
- langchain/document_loaders/markdown.py +0 -25
- langchain/document_loaders/mastodon.py +0 -23
- langchain/document_loaders/max_compute.py +0 -23
- langchain/document_loaders/mediawikidump.py +0 -23
- langchain/document_loaders/merge.py +0 -23
- langchain/document_loaders/mhtml.py +0 -23
- langchain/document_loaders/modern_treasury.py +0 -23
- langchain/document_loaders/mongodb.py +0 -23
- langchain/document_loaders/news.py +0 -23
- langchain/document_loaders/notebook.py +0 -33
- langchain/document_loaders/notion.py +0 -23
- langchain/document_loaders/notiondb.py +0 -23
- langchain/document_loaders/nuclia.py +0 -23
- langchain/document_loaders/obs_directory.py +0 -23
- langchain/document_loaders/obs_file.py +0 -23
- langchain/document_loaders/obsidian.py +0 -23
- langchain/document_loaders/odt.py +0 -23
- langchain/document_loaders/onedrive.py +0 -23
- langchain/document_loaders/onedrive_file.py +0 -23
- langchain/document_loaders/onenote.py +0 -23
- langchain/document_loaders/open_city_data.py +0 -23
- langchain/document_loaders/org_mode.py +0 -25
- langchain/document_loaders/parsers/__init__.py +0 -58
- langchain/document_loaders/parsers/audio.py +0 -33
- langchain/document_loaders/parsers/docai.py +0 -30
- langchain/document_loaders/parsers/generic.py +0 -25
- langchain/document_loaders/parsers/grobid.py +0 -30
- langchain/document_loaders/parsers/html/__init__.py +0 -25
- langchain/document_loaders/parsers/html/bs4.py +0 -25
- langchain/document_loaders/parsers/language/__init__.py +0 -29
- langchain/document_loaders/parsers/language/cobol.py +0 -27
- langchain/document_loaders/parsers/language/code_segmenter.py +0 -29
- langchain/document_loaders/parsers/language/javascript.py +0 -29
- langchain/document_loaders/parsers/language/language_parser.py +0 -29
- langchain/document_loaders/parsers/language/python.py +0 -27
- langchain/document_loaders/parsers/msword.py +0 -25
- langchain/document_loaders/parsers/pdf.py +0 -50
- langchain/document_loaders/parsers/registry.py +0 -25
- langchain/document_loaders/parsers/txt.py +0 -23
- langchain/document_loaders/pdf.py +0 -65
- langchain/document_loaders/polars_dataframe.py +0 -23
- langchain/document_loaders/powerpoint.py +0 -25
- langchain/document_loaders/psychic.py +0 -23
- langchain/document_loaders/pubmed.py +0 -23
- langchain/document_loaders/pyspark_dataframe.py +0 -26
- langchain/document_loaders/python.py +0 -22
- langchain/document_loaders/quip.py +0 -23
- langchain/document_loaders/readthedocs.py +0 -23
- langchain/document_loaders/recursive_url_loader.py +0 -23
- langchain/document_loaders/reddit.py +0 -23
- langchain/document_loaders/roam.py +0 -23
- langchain/document_loaders/rocksetdb.py +0 -23
- langchain/document_loaders/rspace.py +0 -23
- langchain/document_loaders/rss.py +0 -23
- langchain/document_loaders/rst.py +0 -23
- langchain/document_loaders/rtf.py +0 -23
- langchain/document_loaders/s3_directory.py +0 -23
- langchain/document_loaders/s3_file.py +0 -23
- langchain/document_loaders/sharepoint.py +0 -23
- langchain/document_loaders/sitemap.py +0 -23
- langchain/document_loaders/slack_directory.py +0 -23
- langchain/document_loaders/snowflake_loader.py +0 -23
- langchain/document_loaders/spreedly.py +0 -23
- langchain/document_loaders/srt.py +0 -23
- langchain/document_loaders/stripe.py +0 -23
- langchain/document_loaders/telegram.py +0 -38
- langchain/document_loaders/tencent_cos_directory.py +0 -25
- langchain/document_loaders/tencent_cos_file.py +0 -23
- langchain/document_loaders/tensorflow_datasets.py +0 -23
- langchain/document_loaders/text.py +0 -23
- langchain/document_loaders/tomarkdown.py +0 -23
- langchain/document_loaders/toml.py +0 -23
- langchain/document_loaders/trello.py +0 -23
- langchain/document_loaders/tsv.py +0 -23
- langchain/document_loaders/twitter.py +0 -23
- langchain/document_loaders/unstructured.py +0 -54
- langchain/document_loaders/url.py +0 -23
- langchain/document_loaders/url_playwright.py +0 -33
- langchain/document_loaders/url_selenium.py +0 -23
- langchain/document_loaders/weather.py +0 -23
- langchain/document_loaders/web_base.py +0 -23
- langchain/document_loaders/whatsapp_chat.py +0 -28
- langchain/document_loaders/wikipedia.py +0 -23
- langchain/document_loaders/word_document.py +0 -30
- langchain/document_loaders/xml.py +0 -23
- langchain/document_loaders/xorbits.py +0 -23
- langchain/document_loaders/youtube.py +0 -33
- langchain/document_transformers/__init__.py +0 -77
- langchain/document_transformers/beautiful_soup_transformer.py +0 -25
- langchain/document_transformers/doctran_text_extract.py +0 -25
- langchain/document_transformers/doctran_text_qa.py +0 -25
- langchain/document_transformers/doctran_text_translate.py +0 -25
- langchain/document_transformers/embeddings_redundant_filter.py +0 -50
- langchain/document_transformers/google_translate.py +0 -25
- langchain/document_transformers/html2text.py +0 -25
- langchain/document_transformers/long_context_reorder.py +0 -23
- langchain/document_transformers/nuclia_text_transform.py +0 -25
- langchain/document_transformers/openai_functions.py +0 -32
- langchain/document_transformers/xsl/html_chunks_with_headers.xslt +0 -199
- langchain/embeddings/aleph_alpha.py +0 -30
- langchain/embeddings/awa.py +0 -23
- langchain/embeddings/azure_openai.py +0 -23
- langchain/embeddings/baidu_qianfan_endpoint.py +0 -23
- langchain/embeddings/bedrock.py +0 -23
- langchain/embeddings/bookend.py +0 -23
- langchain/embeddings/cache.py +0 -368
- langchain/embeddings/clarifai.py +0 -23
- langchain/embeddings/cloudflare_workersai.py +0 -29
- langchain/embeddings/cohere.py +0 -23
- langchain/embeddings/dashscope.py +0 -23
- langchain/embeddings/databricks.py +0 -23
- langchain/embeddings/deepinfra.py +0 -23
- langchain/embeddings/edenai.py +0 -23
- langchain/embeddings/elasticsearch.py +0 -23
- langchain/embeddings/embaas.py +0 -23
- langchain/embeddings/ernie.py +0 -23
- langchain/embeddings/fake.py +0 -30
- langchain/embeddings/fastembed.py +0 -23
- langchain/embeddings/google_palm.py +0 -23
- langchain/embeddings/gpt4all.py +0 -23
- langchain/embeddings/gradient_ai.py +0 -23
- langchain/embeddings/huggingface.py +0 -36
- langchain/embeddings/huggingface_hub.py +0 -23
- langchain/embeddings/infinity.py +0 -30
- langchain/embeddings/javelin_ai_gateway.py +0 -23
- langchain/embeddings/jina.py +0 -23
- langchain/embeddings/johnsnowlabs.py +0 -23
- langchain/embeddings/llamacpp.py +0 -23
- langchain/embeddings/llm_rails.py +0 -23
- langchain/embeddings/localai.py +0 -23
- langchain/embeddings/minimax.py +0 -23
- langchain/embeddings/mlflow.py +0 -23
- langchain/embeddings/mlflow_gateway.py +0 -23
- langchain/embeddings/modelscope_hub.py +0 -23
- langchain/embeddings/mosaicml.py +0 -23
- langchain/embeddings/nlpcloud.py +0 -23
- langchain/embeddings/octoai_embeddings.py +0 -23
- langchain/embeddings/ollama.py +0 -23
- langchain/embeddings/openai.py +0 -23
- langchain/embeddings/sagemaker_endpoint.py +0 -30
- langchain/embeddings/self_hosted.py +0 -23
- langchain/embeddings/self_hosted_hugging_face.py +0 -30
- langchain/embeddings/sentence_transformer.py +0 -21
- langchain/embeddings/spacy_embeddings.py +0 -23
- langchain/embeddings/tensorflow_hub.py +0 -23
- langchain/embeddings/vertexai.py +0 -23
- langchain/embeddings/voyageai.py +0 -23
- langchain/embeddings/xinference.py +0 -23
- langchain/env.py +0 -17
- langchain/evaluation/__init__.py +0 -128
- langchain/evaluation/agents/__init__.py +0 -5
- langchain/evaluation/agents/trajectory_eval_chain.py +0 -416
- langchain/evaluation/agents/trajectory_eval_prompt.py +0 -146
- langchain/evaluation/comparison/__init__.py +0 -36
- langchain/evaluation/comparison/eval_chain.py +0 -462
- langchain/evaluation/comparison/prompt.py +0 -59
- langchain/evaluation/criteria/__init__.py +0 -56
- langchain/evaluation/criteria/eval_chain.py +0 -606
- langchain/evaluation/criteria/prompt.py +0 -37
- langchain/evaluation/embedding_distance/__init__.py +0 -13
- langchain/evaluation/embedding_distance/base.py +0 -613
- langchain/evaluation/exact_match/__init__.py +0 -0
- langchain/evaluation/exact_match/base.py +0 -110
- langchain/evaluation/loading.py +0 -207
- langchain/evaluation/parsing/__init__.py +0 -0
- langchain/evaluation/parsing/base.py +0 -175
- langchain/evaluation/parsing/json_distance.py +0 -108
- langchain/evaluation/parsing/json_schema.py +0 -97
- langchain/evaluation/qa/__init__.py +0 -10
- langchain/evaluation/qa/eval_chain.py +0 -372
- langchain/evaluation/qa/eval_prompt.py +0 -78
- langchain/evaluation/qa/generate_chain.py +0 -36
- langchain/evaluation/qa/generate_prompt.py +0 -21
- langchain/evaluation/regex_match/__init__.py +0 -0
- langchain/evaluation/regex_match/base.py +0 -94
- langchain/evaluation/schema.py +0 -491
- langchain/evaluation/scoring/__init__.py +0 -31
- langchain/evaluation/scoring/eval_chain.py +0 -476
- langchain/evaluation/scoring/prompt.py +0 -53
- langchain/evaluation/string_distance/__init__.py +0 -13
- langchain/evaluation/string_distance/base.py +0 -472
- langchain/example_generator.py +0 -5
- langchain/formatting.py +0 -5
- langchain/globals.py +0 -180
- langchain/graphs/__init__.py +0 -57
- langchain/graphs/arangodb_graph.py +0 -28
- langchain/graphs/falkordb_graph.py +0 -23
- langchain/graphs/graph_document.py +0 -33
- langchain/graphs/graph_store.py +0 -23
- langchain/graphs/hugegraph.py +0 -23
- langchain/graphs/kuzu_graph.py +0 -23
- langchain/graphs/memgraph_graph.py +0 -23
- langchain/graphs/nebula_graph.py +0 -23
- langchain/graphs/neo4j_graph.py +0 -23
- langchain/graphs/neptune_graph.py +0 -23
- langchain/graphs/networkx_graph.py +0 -36
- langchain/graphs/rdf_graph.py +0 -23
- langchain/hub.py +0 -131
- langchain/indexes/__init__.py +0 -50
- langchain/indexes/_api.py +0 -5
- langchain/indexes/_sql_record_manager.py +0 -539
- langchain/indexes/graph.py +0 -28
- langchain/indexes/prompts/__init__.py +0 -13
- langchain/indexes/prompts/entity_extraction.py +0 -39
- langchain/indexes/prompts/entity_summarization.py +0 -24
- langchain/indexes/prompts/knowledge_triplet_extraction.py +0 -36
- langchain/indexes/vectorstore.py +0 -269
- langchain/input.py +0 -15
- langchain/llms/__init__.py +0 -734
- langchain/llms/ai21.py +0 -28
- langchain/llms/aleph_alpha.py +0 -23
- langchain/llms/amazon_api_gateway.py +0 -23
- langchain/llms/anthropic.py +0 -23
- langchain/llms/anyscale.py +0 -23
- langchain/llms/arcee.py +0 -23
- langchain/llms/aviary.py +0 -23
- langchain/llms/azureml_endpoint.py +0 -48
- langchain/llms/baidu_qianfan_endpoint.py +0 -23
- langchain/llms/bananadev.py +0 -23
- langchain/llms/base.py +0 -20
- langchain/llms/baseten.py +0 -23
- langchain/llms/beam.py +0 -23
- langchain/llms/bedrock.py +0 -28
- langchain/llms/bittensor.py +0 -23
- langchain/llms/cerebriumai.py +0 -23
- langchain/llms/chatglm.py +0 -23
- langchain/llms/clarifai.py +0 -23
- langchain/llms/cloudflare_workersai.py +0 -25
- langchain/llms/cohere.py +0 -23
- langchain/llms/ctransformers.py +0 -23
- langchain/llms/ctranslate2.py +0 -23
- langchain/llms/databricks.py +0 -23
- langchain/llms/deepinfra.py +0 -23
- langchain/llms/deepsparse.py +0 -23
- langchain/llms/edenai.py +0 -23
- langchain/llms/fake.py +0 -28
- langchain/llms/fireworks.py +0 -23
- langchain/llms/forefrontai.py +0 -23
- langchain/llms/gigachat.py +0 -23
- langchain/llms/google_palm.py +0 -23
- langchain/llms/gooseai.py +0 -23
- langchain/llms/gpt4all.py +0 -23
- langchain/llms/gradient_ai.py +0 -28
- langchain/llms/grammars/json.gbnf +0 -29
- langchain/llms/grammars/list.gbnf +0 -14
- langchain/llms/huggingface_endpoint.py +0 -23
- langchain/llms/huggingface_hub.py +0 -23
- langchain/llms/huggingface_pipeline.py +0 -23
- langchain/llms/huggingface_text_gen_inference.py +0 -23
- langchain/llms/human.py +0 -23
- langchain/llms/javelin_ai_gateway.py +0 -28
- langchain/llms/koboldai.py +0 -23
- langchain/llms/llamacpp.py +0 -23
- langchain/llms/loading.py +0 -27
- langchain/llms/manifest.py +0 -23
- langchain/llms/minimax.py +0 -23
- langchain/llms/mlflow.py +0 -23
- langchain/llms/mlflow_ai_gateway.py +0 -23
- langchain/llms/modal.py +0 -23
- langchain/llms/mosaicml.py +0 -23
- langchain/llms/nlpcloud.py +0 -23
- langchain/llms/octoai_endpoint.py +0 -23
- langchain/llms/ollama.py +0 -23
- langchain/llms/opaqueprompts.py +0 -23
- langchain/llms/openai.py +0 -32
- langchain/llms/openllm.py +0 -23
- langchain/llms/openlm.py +0 -23
- langchain/llms/pai_eas_endpoint.py +0 -23
- langchain/llms/petals.py +0 -23
- langchain/llms/pipelineai.py +0 -23
- langchain/llms/predibase.py +0 -23
- langchain/llms/predictionguard.py +0 -23
- langchain/llms/promptlayer_openai.py +0 -27
- langchain/llms/replicate.py +0 -23
- langchain/llms/rwkv.py +0 -23
- langchain/llms/sagemaker_endpoint.py +0 -28
- langchain/llms/self_hosted.py +0 -23
- langchain/llms/self_hosted_hugging_face.py +0 -23
- langchain/llms/stochasticai.py +0 -23
- langchain/llms/symblai_nebula.py +0 -23
- langchain/llms/textgen.py +0 -23
- langchain/llms/titan_takeoff.py +0 -23
- langchain/llms/titan_takeoff_pro.py +0 -23
- langchain/llms/together.py +0 -23
- langchain/llms/tongyi.py +0 -23
- langchain/llms/utils.py +0 -23
- langchain/llms/vertexai.py +0 -27
- langchain/llms/vllm.py +0 -27
- langchain/llms/volcengine_maas.py +0 -28
- langchain/llms/watsonxllm.py +0 -23
- langchain/llms/writer.py +0 -23
- langchain/llms/xinference.py +0 -23
- langchain/llms/yandex.py +0 -23
- langchain/load/__init__.py +0 -11
- langchain/load/dump.py +0 -3
- langchain/load/load.py +0 -3
- langchain/load/serializable.py +0 -19
- langchain/memory/__init__.py +0 -153
- langchain/memory/buffer.py +0 -178
- langchain/memory/buffer_window.py +0 -62
- langchain/memory/chat_memory.py +0 -104
- langchain/memory/chat_message_histories/__init__.py +0 -84
- langchain/memory/chat_message_histories/astradb.py +0 -25
- langchain/memory/chat_message_histories/cassandra.py +0 -25
- langchain/memory/chat_message_histories/cosmos_db.py +0 -25
- langchain/memory/chat_message_histories/dynamodb.py +0 -25
- langchain/memory/chat_message_histories/elasticsearch.py +0 -27
- langchain/memory/chat_message_histories/file.py +0 -25
- langchain/memory/chat_message_histories/firestore.py +0 -25
- langchain/memory/chat_message_histories/in_memory.py +0 -5
- langchain/memory/chat_message_histories/momento.py +0 -25
- langchain/memory/chat_message_histories/mongodb.py +0 -25
- langchain/memory/chat_message_histories/neo4j.py +0 -25
- langchain/memory/chat_message_histories/postgres.py +0 -25
- langchain/memory/chat_message_histories/redis.py +0 -25
- langchain/memory/chat_message_histories/rocksetdb.py +0 -25
- langchain/memory/chat_message_histories/singlestoredb.py +0 -27
- langchain/memory/chat_message_histories/sql.py +0 -33
- langchain/memory/chat_message_histories/streamlit.py +0 -25
- langchain/memory/chat_message_histories/upstash_redis.py +0 -27
- langchain/memory/chat_message_histories/xata.py +0 -25
- langchain/memory/chat_message_histories/zep.py +0 -25
- langchain/memory/combined.py +0 -85
- langchain/memory/entity.py +0 -611
- langchain/memory/kg.py +0 -23
- langchain/memory/motorhead_memory.py +0 -23
- langchain/memory/prompt.py +0 -164
- langchain/memory/readonly.py +0 -24
- langchain/memory/simple.py +0 -27
- langchain/memory/summary.py +0 -170
- langchain/memory/summary_buffer.py +0 -151
- langchain/memory/token_buffer.py +0 -74
- langchain/memory/utils.py +0 -21
- langchain/memory/vectorstore.py +0 -120
- langchain/memory/vectorstore_token_buffer_memory.py +0 -184
- langchain/memory/zep_memory.py +0 -23
- langchain/model_laboratory.py +0 -99
- langchain/output_parsers/__init__.py +0 -87
- langchain/output_parsers/boolean.py +0 -54
- langchain/output_parsers/combining.py +0 -59
- langchain/output_parsers/datetime.py +0 -58
- langchain/output_parsers/enum.py +0 -45
- langchain/output_parsers/ernie_functions.py +0 -45
- langchain/output_parsers/fix.py +0 -155
- langchain/output_parsers/format_instructions.py +0 -79
- langchain/output_parsers/json.py +0 -15
- langchain/output_parsers/list.py +0 -13
- langchain/output_parsers/loading.py +0 -22
- langchain/output_parsers/openai_functions.py +0 -13
- langchain/output_parsers/openai_tools.py +0 -7
- langchain/output_parsers/pandas_dataframe.py +0 -171
- langchain/output_parsers/prompts.py +0 -21
- langchain/output_parsers/pydantic.py +0 -3
- langchain/output_parsers/rail_parser.py +0 -25
- langchain/output_parsers/regex.py +0 -41
- langchain/output_parsers/regex_dict.py +0 -43
- langchain/output_parsers/retry.py +0 -316
- langchain/output_parsers/structured.py +0 -116
- langchain/output_parsers/xml.py +0 -3
- langchain/output_parsers/yaml.py +0 -77
- langchain/prompts/__init__.py +0 -102
- langchain/prompts/base.py +0 -21
- langchain/prompts/chat.py +0 -37
- langchain/prompts/example_selector/__init__.py +0 -42
- langchain/prompts/example_selector/base.py +0 -3
- langchain/prompts/example_selector/length_based.py +0 -5
- langchain/prompts/example_selector/ngram_overlap.py +0 -32
- langchain/prompts/example_selector/semantic_similarity.py +0 -11
- langchain/prompts/few_shot.py +0 -11
- langchain/prompts/few_shot_with_templates.py +0 -3
- langchain/prompts/loading.py +0 -23
- langchain/prompts/pipeline.py +0 -3
- langchain/prompts/prompt.py +0 -6
- langchain/pydantic_v1/__init__.py +0 -38
- langchain/pydantic_v1/dataclasses.py +0 -20
- langchain/pydantic_v1/main.py +0 -20
- langchain/python.py +0 -19
- langchain/requests.py +0 -35
- langchain/retrievers/__init__.py +0 -178
- langchain/retrievers/arcee.py +0 -23
- langchain/retrievers/arxiv.py +0 -23
- langchain/retrievers/azure_ai_search.py +0 -30
- langchain/retrievers/bedrock.py +0 -33
- langchain/retrievers/bm25.py +0 -28
- langchain/retrievers/chaindesk.py +0 -23
- langchain/retrievers/chatgpt_plugin_retriever.py +0 -23
- langchain/retrievers/cohere_rag_retriever.py +0 -23
- langchain/retrievers/contextual_compression.py +0 -81
- langchain/retrievers/databerry.py +0 -23
- langchain/retrievers/docarray.py +0 -28
- langchain/retrievers/document_compressors/__init__.py +0 -44
- langchain/retrievers/document_compressors/base.py +0 -82
- langchain/retrievers/document_compressors/chain_extract.py +0 -123
- langchain/retrievers/document_compressors/chain_extract_prompt.py +0 -10
- langchain/retrievers/document_compressors/chain_filter.py +0 -133
- langchain/retrievers/document_compressors/chain_filter_prompt.py +0 -8
- langchain/retrievers/document_compressors/cohere_rerank.py +0 -126
- langchain/retrievers/document_compressors/cross_encoder.py +0 -16
- langchain/retrievers/document_compressors/cross_encoder_rerank.py +0 -50
- langchain/retrievers/document_compressors/embeddings_filter.py +0 -140
- langchain/retrievers/document_compressors/flashrank_rerank.py +0 -27
- langchain/retrievers/document_compressors/listwise_rerank.py +0 -145
- langchain/retrievers/elastic_search_bm25.py +0 -23
- langchain/retrievers/embedchain.py +0 -23
- langchain/retrievers/ensemble.py +0 -336
- langchain/retrievers/google_cloud_documentai_warehouse.py +0 -25
- langchain/retrievers/google_vertex_ai_search.py +0 -33
- langchain/retrievers/kay.py +0 -23
- langchain/retrievers/kendra.py +0 -66
- langchain/retrievers/knn.py +0 -23
- langchain/retrievers/llama_index.py +0 -30
- langchain/retrievers/merger_retriever.py +0 -123
- langchain/retrievers/metal.py +0 -23
- langchain/retrievers/milvus.py +0 -28
- langchain/retrievers/multi_query.py +0 -233
- langchain/retrievers/multi_vector.py +0 -135
- langchain/retrievers/outline.py +0 -23
- langchain/retrievers/parent_document_retriever.py +0 -172
- langchain/retrievers/pinecone_hybrid_search.py +0 -23
- langchain/retrievers/pubmed.py +0 -23
- langchain/retrievers/pupmed.py +0 -23
- langchain/retrievers/re_phraser.py +0 -89
- langchain/retrievers/remote_retriever.py +0 -23
- langchain/retrievers/self_query/__init__.py +0 -0
- langchain/retrievers/self_query/astradb.py +0 -23
- langchain/retrievers/self_query/base.py +0 -416
- langchain/retrievers/self_query/chroma.py +0 -23
- langchain/retrievers/self_query/dashvector.py +0 -23
- langchain/retrievers/self_query/databricks_vector_search.py +0 -27
- langchain/retrievers/self_query/deeplake.py +0 -27
- langchain/retrievers/self_query/dingo.py +0 -23
- langchain/retrievers/self_query/elasticsearch.py +0 -25
- langchain/retrievers/self_query/milvus.py +0 -27
- langchain/retrievers/self_query/mongodb_atlas.py +0 -25
- langchain/retrievers/self_query/myscale.py +0 -23
- langchain/retrievers/self_query/opensearch.py +0 -23
- langchain/retrievers/self_query/pgvector.py +0 -23
- langchain/retrievers/self_query/pinecone.py +0 -23
- langchain/retrievers/self_query/qdrant.py +0 -23
- langchain/retrievers/self_query/redis.py +0 -23
- langchain/retrievers/self_query/supabase.py +0 -23
- langchain/retrievers/self_query/tencentvectordb.py +0 -27
- langchain/retrievers/self_query/timescalevector.py +0 -27
- langchain/retrievers/self_query/vectara.py +0 -27
- langchain/retrievers/self_query/weaviate.py +0 -23
- langchain/retrievers/svm.py +0 -23
- langchain/retrievers/tavily_search_api.py +0 -28
- langchain/retrievers/tfidf.py +0 -23
- langchain/retrievers/time_weighted_retriever.py +0 -196
- langchain/retrievers/vespa_retriever.py +0 -23
- langchain/retrievers/weaviate_hybrid_search.py +0 -23
- langchain/retrievers/web_research.py +0 -29
- langchain/retrievers/wikipedia.py +0 -23
- langchain/retrievers/you.py +0 -23
- langchain/retrievers/zep.py +0 -30
- langchain/retrievers/zilliz.py +0 -28
- langchain/runnables/__init__.py +0 -18
- langchain/runnables/hub.py +0 -44
- langchain/runnables/openai_functions.py +0 -57
- langchain/schema/__init__.py +0 -82
- langchain/schema/agent.py +0 -3
- langchain/schema/cache.py +0 -3
- langchain/schema/callbacks/__init__.py +0 -0
- langchain/schema/callbacks/base.py +0 -23
- langchain/schema/callbacks/manager.py +0 -55
- langchain/schema/callbacks/stdout.py +0 -3
- langchain/schema/callbacks/streaming_stdout.py +0 -3
- langchain/schema/callbacks/tracers/__init__.py +0 -0
- langchain/schema/callbacks/tracers/base.py +0 -4
- langchain/schema/callbacks/tracers/evaluation.py +0 -6
- langchain/schema/callbacks/tracers/langchain.py +0 -8
- langchain/schema/callbacks/tracers/langchain_v1.py +0 -3
- langchain/schema/callbacks/tracers/log_stream.py +0 -9
- langchain/schema/callbacks/tracers/root_listeners.py +0 -3
- langchain/schema/callbacks/tracers/run_collector.py +0 -3
- langchain/schema/callbacks/tracers/schemas.py +0 -27
- langchain/schema/callbacks/tracers/stdout.py +0 -13
- langchain/schema/chat.py +0 -3
- langchain/schema/chat_history.py +0 -3
- langchain/schema/document.py +0 -3
- langchain/schema/embeddings.py +0 -3
- langchain/schema/exceptions.py +0 -3
- langchain/schema/language_model.py +0 -15
- langchain/schema/memory.py +0 -3
- langchain/schema/messages.py +0 -51
- langchain/schema/output.py +0 -19
- langchain/schema/output_parser.py +0 -25
- langchain/schema/prompt.py +0 -3
- langchain/schema/prompt_template.py +0 -3
- langchain/schema/retriever.py +0 -3
- langchain/schema/runnable/__init__.py +0 -58
- langchain/schema/runnable/base.py +0 -38
- langchain/schema/runnable/branch.py +0 -3
- langchain/schema/runnable/config.py +0 -27
- langchain/schema/runnable/configurable.py +0 -15
- langchain/schema/runnable/fallbacks.py +0 -3
- langchain/schema/runnable/history.py +0 -11
- langchain/schema/runnable/passthrough.py +0 -8
- langchain/schema/runnable/retry.py +0 -3
- langchain/schema/runnable/router.py +0 -3
- langchain/schema/runnable/utils.py +0 -51
- langchain/schema/storage.py +0 -3
- langchain/schema/vectorstore.py +0 -3
- langchain/serpapi.py +0 -25
- langchain/smith/__init__.py +0 -103
- langchain/smith/evaluation/__init__.py +0 -68
- langchain/smith/evaluation/config.py +0 -365
- langchain/smith/evaluation/name_generation.py +0 -727
- langchain/smith/evaluation/progress.py +0 -146
- langchain/smith/evaluation/runner_utils.py +0 -1689
- langchain/smith/evaluation/string_run_evaluator.py +0 -467
- langchain/sql_database.py +0 -25
- langchain/storage/__init__.py +0 -57
- langchain/storage/_lc_store.py +0 -91
- langchain/storage/encoder_backed.py +0 -128
- langchain/storage/exceptions.py +0 -3
- langchain/storage/file_system.py +0 -176
- langchain/storage/in_memory.py +0 -13
- langchain/storage/redis.py +0 -23
- langchain/storage/upstash_redis.py +0 -27
- langchain/text_splitter.py +0 -50
- langchain/tools/ainetwork/__init__.py +0 -0
- langchain/tools/ainetwork/app.py +0 -30
- langchain/tools/ainetwork/base.py +0 -27
- langchain/tools/ainetwork/owner.py +0 -28
- langchain/tools/ainetwork/rule.py +0 -28
- langchain/tools/ainetwork/transfer.py +0 -28
- langchain/tools/ainetwork/value.py +0 -28
- langchain/tools/amadeus/__init__.py +0 -30
- langchain/tools/amadeus/base.py +0 -23
- langchain/tools/amadeus/closest_airport.py +0 -30
- langchain/tools/amadeus/flight_search.py +0 -30
- langchain/tools/arxiv/__init__.py +0 -1
- langchain/tools/arxiv/tool.py +0 -28
- langchain/tools/azure_cognitive_services/__init__.py +0 -41
- langchain/tools/azure_cognitive_services/form_recognizer.py +0 -23
- langchain/tools/azure_cognitive_services/image_analysis.py +0 -23
- langchain/tools/azure_cognitive_services/speech2text.py +0 -23
- langchain/tools/azure_cognitive_services/text2speech.py +0 -23
- langchain/tools/azure_cognitive_services/text_analytics_health.py +0 -23
- langchain/tools/base.py +0 -19
- langchain/tools/bearly/__init__.py +0 -0
- langchain/tools/bearly/tool.py +0 -33
- langchain/tools/bing_search/__init__.py +0 -29
- langchain/tools/bing_search/tool.py +0 -27
- langchain/tools/brave_search/__init__.py +0 -0
- langchain/tools/brave_search/tool.py +0 -23
- langchain/tools/clickup/__init__.py +0 -0
- langchain/tools/clickup/tool.py +0 -23
- langchain/tools/convert_to_openai.py +0 -4
- langchain/tools/dataforseo_api_search/__init__.py +0 -34
- langchain/tools/dataforseo_api_search/tool.py +0 -32
- langchain/tools/ddg_search/__init__.py +0 -25
- langchain/tools/ddg_search/tool.py +0 -32
- langchain/tools/e2b_data_analysis/__init__.py +0 -0
- langchain/tools/e2b_data_analysis/tool.py +0 -33
- langchain/tools/edenai/__init__.py +0 -50
- langchain/tools/edenai/audio_speech_to_text.py +0 -23
- langchain/tools/edenai/audio_text_to_speech.py +0 -23
- langchain/tools/edenai/edenai_base_tool.py +0 -23
- langchain/tools/edenai/image_explicitcontent.py +0 -23
- langchain/tools/edenai/image_objectdetection.py +0 -23
- langchain/tools/edenai/ocr_identityparser.py +0 -23
- langchain/tools/edenai/ocr_invoiceparser.py +0 -23
- langchain/tools/edenai/text_moderation.py +0 -23
- langchain/tools/eleven_labs/__init__.py +0 -25
- langchain/tools/eleven_labs/models.py +0 -23
- langchain/tools/eleven_labs/text2speech.py +0 -23
- langchain/tools/file_management/__init__.py +0 -47
- langchain/tools/file_management/copy.py +0 -28
- langchain/tools/file_management/delete.py +0 -28
- langchain/tools/file_management/file_search.py +0 -28
- langchain/tools/file_management/list_dir.py +0 -28
- langchain/tools/file_management/move.py +0 -28
- langchain/tools/file_management/read.py +0 -28
- langchain/tools/file_management/write.py +0 -28
- langchain/tools/github/__init__.py +0 -1
- langchain/tools/github/tool.py +0 -23
- langchain/tools/gitlab/__init__.py +0 -1
- langchain/tools/gitlab/tool.py +0 -23
- langchain/tools/gmail/__init__.py +0 -41
- langchain/tools/gmail/base.py +0 -23
- langchain/tools/gmail/create_draft.py +0 -28
- langchain/tools/gmail/get_message.py +0 -28
- langchain/tools/gmail/get_thread.py +0 -28
- langchain/tools/gmail/search.py +0 -30
- langchain/tools/gmail/send_message.py +0 -28
- langchain/tools/golden_query/__init__.py +0 -25
- langchain/tools/golden_query/tool.py +0 -23
- langchain/tools/google_cloud/__init__.py +0 -25
- langchain/tools/google_cloud/texttospeech.py +0 -23
- langchain/tools/google_finance/__init__.py +0 -27
- langchain/tools/google_finance/tool.py +0 -25
- langchain/tools/google_jobs/__init__.py +0 -25
- langchain/tools/google_jobs/tool.py +0 -23
- langchain/tools/google_lens/__init__.py +0 -25
- langchain/tools/google_lens/tool.py +0 -23
- langchain/tools/google_places/__init__.py +0 -25
- langchain/tools/google_places/tool.py +0 -28
- langchain/tools/google_scholar/__init__.py +0 -27
- langchain/tools/google_scholar/tool.py +0 -25
- langchain/tools/google_search/__init__.py +0 -29
- langchain/tools/google_search/tool.py +0 -27
- langchain/tools/google_serper/__init__.py +0 -30
- langchain/tools/google_serper/tool.py +0 -27
- langchain/tools/google_trends/__init__.py +0 -27
- langchain/tools/google_trends/tool.py +0 -25
- langchain/tools/graphql/__init__.py +0 -1
- langchain/tools/graphql/tool.py +0 -23
- langchain/tools/human/__init__.py +0 -25
- langchain/tools/human/tool.py +0 -23
- langchain/tools/ifttt.py +0 -23
- langchain/tools/interaction/__init__.py +0 -1
- langchain/tools/interaction/tool.py +0 -23
- langchain/tools/jira/__init__.py +0 -1
- langchain/tools/jira/tool.py +0 -42
- langchain/tools/json/__init__.py +0 -1
- langchain/tools/json/tool.py +0 -52
- langchain/tools/memorize/__init__.py +0 -25
- langchain/tools/memorize/tool.py +0 -27
- langchain/tools/merriam_webster/__init__.py +0 -1
- langchain/tools/merriam_webster/tool.py +0 -23
- langchain/tools/metaphor_search/__init__.py +0 -25
- langchain/tools/metaphor_search/tool.py +0 -23
- langchain/tools/multion/__init__.py +0 -33
- langchain/tools/multion/close_session.py +0 -30
- langchain/tools/multion/create_session.py +0 -30
- langchain/tools/multion/update_session.py +0 -30
- langchain/tools/nasa/__init__.py +0 -0
- langchain/tools/nasa/tool.py +0 -23
- langchain/tools/nuclia/__init__.py +0 -23
- langchain/tools/nuclia/tool.py +0 -27
- langchain/tools/office365/__init__.py +0 -41
- langchain/tools/office365/base.py +0 -23
- langchain/tools/office365/create_draft_message.py +0 -32
- langchain/tools/office365/events_search.py +0 -28
- langchain/tools/office365/messages_search.py +0 -28
- langchain/tools/office365/send_event.py +0 -28
- langchain/tools/office365/send_message.py +0 -28
- langchain/tools/openapi/__init__.py +0 -0
- langchain/tools/openapi/utils/__init__.py +0 -0
- langchain/tools/openapi/utils/api_models.py +0 -54
- langchain/tools/openapi/utils/openapi_utils.py +0 -30
- langchain/tools/openweathermap/__init__.py +0 -25
- langchain/tools/openweathermap/tool.py +0 -23
- langchain/tools/playwright/__init__.py +0 -47
- langchain/tools/playwright/base.py +0 -23
- langchain/tools/playwright/click.py +0 -28
- langchain/tools/playwright/current_page.py +0 -23
- langchain/tools/playwright/extract_hyperlinks.py +0 -32
- langchain/tools/playwright/extract_text.py +0 -23
- langchain/tools/playwright/get_elements.py +0 -28
- langchain/tools/playwright/navigate.py +0 -28
- langchain/tools/playwright/navigate_back.py +0 -23
- langchain/tools/plugin.py +0 -32
- langchain/tools/powerbi/__init__.py +0 -1
- langchain/tools/powerbi/tool.py +0 -33
- langchain/tools/pubmed/__init__.py +0 -1
- langchain/tools/pubmed/tool.py +0 -23
- langchain/tools/python/__init__.py +0 -13
- langchain/tools/reddit_search/__init__.py +0 -0
- langchain/tools/reddit_search/tool.py +0 -27
- langchain/tools/render.py +0 -23
- langchain/tools/requests/__init__.py +0 -1
- langchain/tools/requests/tool.py +0 -42
- langchain/tools/retriever.py +0 -11
- langchain/tools/scenexplain/__init__.py +0 -1
- langchain/tools/scenexplain/tool.py +0 -28
- langchain/tools/searchapi/__init__.py +0 -30
- langchain/tools/searchapi/tool.py +0 -27
- langchain/tools/searx_search/__init__.py +0 -0
- langchain/tools/searx_search/tool.py +0 -27
- langchain/tools/shell/__init__.py +0 -25
- langchain/tools/shell/tool.py +0 -28
- langchain/tools/slack/__init__.py +0 -38
- langchain/tools/slack/base.py +0 -23
- langchain/tools/slack/get_channel.py +0 -23
- langchain/tools/slack/get_message.py +0 -28
- langchain/tools/slack/schedule_message.py +0 -28
- langchain/tools/slack/send_message.py +0 -28
- langchain/tools/sleep/__init__.py +0 -1
- langchain/tools/sleep/tool.py +0 -28
- langchain/tools/spark_sql/__init__.py +0 -1
- langchain/tools/spark_sql/tool.py +0 -39
- langchain/tools/sql_database/__init__.py +0 -1
- langchain/tools/sql_database/prompt.py +0 -24
- langchain/tools/sql_database/tool.py +0 -39
- langchain/tools/stackexchange/__init__.py +0 -1
- langchain/tools/stackexchange/tool.py +0 -23
- langchain/tools/steam/__init__.py +0 -1
- langchain/tools/steam/tool.py +0 -23
- langchain/tools/steamship_image_generation/__init__.py +0 -25
- langchain/tools/steamship_image_generation/tool.py +0 -28
- langchain/tools/tavily_search/__init__.py +0 -32
- langchain/tools/tavily_search/tool.py +0 -33
- langchain/tools/vectorstore/__init__.py +0 -1
- langchain/tools/vectorstore/tool.py +0 -30
- langchain/tools/wikipedia/__init__.py +0 -1
- langchain/tools/wikipedia/tool.py +0 -23
- langchain/tools/wolfram_alpha/__init__.py +0 -25
- langchain/tools/wolfram_alpha/tool.py +0 -23
- langchain/tools/yahoo_finance_news.py +0 -23
- langchain/tools/youtube/__init__.py +0 -0
- langchain/tools/youtube/search.py +0 -23
- langchain/tools/zapier/__init__.py +0 -29
- langchain/tools/zapier/tool.py +0 -49
- langchain/utilities/__init__.py +0 -168
- langchain/utilities/alpha_vantage.py +0 -23
- langchain/utilities/anthropic.py +0 -30
- langchain/utilities/apify.py +0 -23
- langchain/utilities/arcee.py +0 -45
- langchain/utilities/arxiv.py +0 -23
- langchain/utilities/asyncio.py +0 -11
- langchain/utilities/awslambda.py +0 -23
- langchain/utilities/bibtex.py +0 -23
- langchain/utilities/bing_search.py +0 -23
- langchain/utilities/brave_search.py +0 -23
- langchain/utilities/clickup.py +0 -45
- langchain/utilities/dalle_image_generator.py +0 -25
- langchain/utilities/dataforseo_api_search.py +0 -25
- langchain/utilities/duckduckgo_search.py +0 -23
- langchain/utilities/github.py +0 -23
- langchain/utilities/gitlab.py +0 -23
- langchain/utilities/golden_query.py +0 -23
- langchain/utilities/google_finance.py +0 -23
- langchain/utilities/google_jobs.py +0 -23
- langchain/utilities/google_lens.py +0 -23
- langchain/utilities/google_places_api.py +0 -23
- langchain/utilities/google_scholar.py +0 -23
- langchain/utilities/google_search.py +0 -23
- langchain/utilities/google_serper.py +0 -23
- langchain/utilities/google_trends.py +0 -23
- langchain/utilities/graphql.py +0 -23
- langchain/utilities/jira.py +0 -23
- langchain/utilities/loading.py +0 -4
- langchain/utilities/max_compute.py +0 -23
- langchain/utilities/merriam_webster.py +0 -23
- langchain/utilities/metaphor_search.py +0 -23
- langchain/utilities/nasa.py +0 -23
- langchain/utilities/opaqueprompts.py +0 -27
- langchain/utilities/openapi.py +0 -28
- langchain/utilities/openweathermap.py +0 -23
- langchain/utilities/outline.py +0 -23
- langchain/utilities/portkey.py +0 -23
- langchain/utilities/powerbi.py +0 -23
- langchain/utilities/pubmed.py +0 -23
- langchain/utilities/python.py +0 -19
- langchain/utilities/reddit_search.py +0 -25
- langchain/utilities/redis.py +0 -33
- langchain/utilities/requests.py +0 -27
- langchain/utilities/scenexplain.py +0 -23
- langchain/utilities/searchapi.py +0 -23
- langchain/utilities/searx_search.py +0 -28
- langchain/utilities/serpapi.py +0 -28
- langchain/utilities/spark_sql.py +0 -23
- langchain/utilities/sql_database.py +0 -28
- langchain/utilities/stackexchange.py +0 -23
- langchain/utilities/steam.py +0 -23
- langchain/utilities/tavily_search.py +0 -25
- langchain/utilities/tensorflow_datasets.py +0 -23
- langchain/utilities/twilio.py +0 -23
- langchain/utilities/vertexai.py +0 -36
- langchain/utilities/wikipedia.py +0 -23
- langchain/utilities/wolfram_alpha.py +0 -23
- langchain/utilities/zapier.py +0 -23
- langchain/utils/__init__.py +0 -77
- langchain/utils/aiter.py +0 -3
- langchain/utils/env.py +0 -3
- langchain/utils/ernie_functions.py +0 -36
- langchain/utils/formatting.py +0 -3
- langchain/utils/html.py +0 -19
- langchain/utils/input.py +0 -8
- langchain/utils/iter.py +0 -3
- langchain/utils/json_schema.py +0 -11
- langchain/utils/loading.py +0 -3
- langchain/utils/math.py +0 -32
- langchain/utils/openai.py +0 -23
- langchain/utils/openai_functions.py +0 -13
- langchain/utils/pydantic.py +0 -3
- langchain/utils/strings.py +0 -3
- langchain/utils/utils.py +0 -21
- langchain/vectorstores/__init__.py +0 -262
- langchain/vectorstores/alibabacloud_opensearch.py +0 -30
- langchain/vectorstores/analyticdb.py +0 -23
- langchain/vectorstores/annoy.py +0 -23
- langchain/vectorstores/astradb.py +0 -23
- langchain/vectorstores/atlas.py +0 -23
- langchain/vectorstores/awadb.py +0 -23
- langchain/vectorstores/azure_cosmos_db.py +0 -28
- langchain/vectorstores/azuresearch.py +0 -30
- langchain/vectorstores/bageldb.py +0 -23
- langchain/vectorstores/baiducloud_vector_search.py +0 -23
- langchain/vectorstores/base.py +0 -3
- langchain/vectorstores/cassandra.py +0 -23
- langchain/vectorstores/chroma.py +0 -23
- langchain/vectorstores/clarifai.py +0 -23
- langchain/vectorstores/clickhouse.py +0 -27
- langchain/vectorstores/dashvector.py +0 -23
- langchain/vectorstores/databricks_vector_search.py +0 -23
- langchain/vectorstores/deeplake.py +0 -23
- langchain/vectorstores/dingo.py +0 -23
- langchain/vectorstores/docarray/__init__.py +0 -30
- langchain/vectorstores/docarray/base.py +0 -23
- langchain/vectorstores/docarray/hnsw.py +0 -23
- langchain/vectorstores/docarray/in_memory.py +0 -23
- langchain/vectorstores/elastic_vector_search.py +0 -27
- langchain/vectorstores/elasticsearch.py +0 -39
- langchain/vectorstores/epsilla.py +0 -23
- langchain/vectorstores/faiss.py +0 -23
- langchain/vectorstores/hippo.py +0 -23
- langchain/vectorstores/hologres.py +0 -23
- langchain/vectorstores/lancedb.py +0 -23
- langchain/vectorstores/llm_rails.py +0 -28
- langchain/vectorstores/marqo.py +0 -23
- langchain/vectorstores/matching_engine.py +0 -23
- langchain/vectorstores/meilisearch.py +0 -23
- langchain/vectorstores/milvus.py +0 -23
- langchain/vectorstores/momento_vector_index.py +0 -23
- langchain/vectorstores/mongodb_atlas.py +0 -23
- langchain/vectorstores/myscale.py +0 -30
- langchain/vectorstores/neo4j_vector.py +0 -28
- langchain/vectorstores/nucliadb.py +0 -23
- langchain/vectorstores/opensearch_vector_search.py +0 -23
- langchain/vectorstores/pgembedding.py +0 -36
- langchain/vectorstores/pgvecto_rs.py +0 -23
- langchain/vectorstores/pgvector.py +0 -28
- langchain/vectorstores/pinecone.py +0 -23
- langchain/vectorstores/qdrant.py +0 -28
- langchain/vectorstores/redis/__init__.py +0 -42
- langchain/vectorstores/redis/base.py +0 -33
- langchain/vectorstores/redis/filters.py +0 -48
- langchain/vectorstores/redis/schema.py +0 -54
- langchain/vectorstores/rocksetdb.py +0 -23
- langchain/vectorstores/scann.py +0 -23
- langchain/vectorstores/semadb.py +0 -23
- langchain/vectorstores/singlestoredb.py +0 -23
- langchain/vectorstores/sklearn.py +0 -42
- langchain/vectorstores/sqlitevss.py +0 -23
- langchain/vectorstores/starrocks.py +0 -28
- langchain/vectorstores/supabase.py +0 -23
- langchain/vectorstores/tair.py +0 -23
- langchain/vectorstores/tencentvectordb.py +0 -33
- langchain/vectorstores/tigris.py +0 -23
- langchain/vectorstores/tiledb.py +0 -23
- langchain/vectorstores/timescalevector.py +0 -23
- langchain/vectorstores/typesense.py +0 -23
- langchain/vectorstores/usearch.py +0 -23
- langchain/vectorstores/utils.py +0 -33
- langchain/vectorstores/vald.py +0 -23
- langchain/vectorstores/vearch.py +0 -23
- langchain/vectorstores/vectara.py +0 -28
- langchain/vectorstores/vespa.py +0 -23
- langchain/vectorstores/weaviate.py +0 -23
- langchain/vectorstores/xata.py +0 -23
- langchain/vectorstores/yellowbrick.py +0 -23
- langchain/vectorstores/zep.py +0 -28
- langchain/vectorstores/zilliz.py +0 -23
- langchain-0.4.0.dev0.dist-info/METADATA +0 -134
- langchain-0.4.0.dev0.dist-info/RECORD +0 -1341
- langchain-0.4.0.dev0.dist-info/entry_points.txt +0 -4
- {langchain-0.4.0.dev0.dist-info → langchain-1.0.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,818 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import asyncio
|
|
4
|
-
import json
|
|
5
|
-
from collections.abc import Sequence
|
|
6
|
-
from json import JSONDecodeError
|
|
7
|
-
from time import sleep
|
|
8
|
-
from typing import (
|
|
9
|
-
TYPE_CHECKING,
|
|
10
|
-
Any,
|
|
11
|
-
Callable,
|
|
12
|
-
Optional,
|
|
13
|
-
Union,
|
|
14
|
-
)
|
|
15
|
-
|
|
16
|
-
from langchain_core.agents import AgentAction, AgentFinish
|
|
17
|
-
from langchain_core.callbacks import CallbackManager
|
|
18
|
-
from langchain_core.load import dumpd
|
|
19
|
-
from langchain_core.runnables import RunnableConfig, RunnableSerializable, ensure_config
|
|
20
|
-
from langchain_core.tools import BaseTool
|
|
21
|
-
from langchain_core.utils.function_calling import convert_to_openai_tool
|
|
22
|
-
from pydantic import BaseModel, Field, model_validator
|
|
23
|
-
from typing_extensions import Self, override
|
|
24
|
-
|
|
25
|
-
if TYPE_CHECKING:
|
|
26
|
-
import openai
|
|
27
|
-
from openai.types.beta.threads import ThreadMessage # type: ignore[attr-defined]
|
|
28
|
-
from openai.types.beta.threads.required_action_function_tool_call import (
|
|
29
|
-
RequiredActionFunctionToolCall,
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
class OpenAIAssistantFinish(AgentFinish):
|
|
34
|
-
"""AgentFinish with run and thread metadata.
|
|
35
|
-
|
|
36
|
-
Parameters:
|
|
37
|
-
run_id: Run id.
|
|
38
|
-
thread_id: Thread id.
|
|
39
|
-
"""
|
|
40
|
-
|
|
41
|
-
run_id: str
|
|
42
|
-
thread_id: str
|
|
43
|
-
|
|
44
|
-
@classmethod
|
|
45
|
-
def is_lc_serializable(cls) -> bool:
|
|
46
|
-
"""Check if the class is serializable by LangChain.
|
|
47
|
-
|
|
48
|
-
Returns:
|
|
49
|
-
False
|
|
50
|
-
"""
|
|
51
|
-
return False
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
class OpenAIAssistantAction(AgentAction):
|
|
55
|
-
"""AgentAction with info needed to submit custom tool output to existing run.
|
|
56
|
-
|
|
57
|
-
Parameters:
|
|
58
|
-
tool_call_id: Tool call id.
|
|
59
|
-
run_id: Run id.
|
|
60
|
-
thread_id: Thread id
|
|
61
|
-
"""
|
|
62
|
-
|
|
63
|
-
tool_call_id: str
|
|
64
|
-
run_id: str
|
|
65
|
-
thread_id: str
|
|
66
|
-
|
|
67
|
-
@classmethod
|
|
68
|
-
def is_lc_serializable(cls) -> bool:
|
|
69
|
-
"""Check if the class is serializable by LangChain.
|
|
70
|
-
|
|
71
|
-
Returns:
|
|
72
|
-
False
|
|
73
|
-
"""
|
|
74
|
-
return False
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
def _get_openai_client() -> openai.OpenAI:
|
|
78
|
-
try:
|
|
79
|
-
import openai
|
|
80
|
-
|
|
81
|
-
return openai.OpenAI()
|
|
82
|
-
except ImportError as e:
|
|
83
|
-
msg = "Unable to import openai, please install with `pip install openai`."
|
|
84
|
-
raise ImportError(msg) from e
|
|
85
|
-
except AttributeError as e:
|
|
86
|
-
msg = (
|
|
87
|
-
"Please make sure you are using a v1.1-compatible version of openai. You "
|
|
88
|
-
'can install with `pip install "openai>=1.1"`.'
|
|
89
|
-
)
|
|
90
|
-
raise AttributeError(msg) from e
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
def _get_openai_async_client() -> openai.AsyncOpenAI:
|
|
94
|
-
try:
|
|
95
|
-
import openai
|
|
96
|
-
|
|
97
|
-
return openai.AsyncOpenAI()
|
|
98
|
-
except ImportError as e:
|
|
99
|
-
msg = "Unable to import openai, please install with `pip install openai`."
|
|
100
|
-
raise ImportError(msg) from e
|
|
101
|
-
except AttributeError as e:
|
|
102
|
-
msg = (
|
|
103
|
-
"Please make sure you are using a v1.1-compatible version of openai. You "
|
|
104
|
-
'can install with `pip install "openai>=1.1"`.'
|
|
105
|
-
)
|
|
106
|
-
raise AttributeError(msg) from e
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
def _is_assistants_builtin_tool(
|
|
110
|
-
tool: Union[dict[str, Any], type[BaseModel], Callable, BaseTool],
|
|
111
|
-
) -> bool:
|
|
112
|
-
"""Determine if tool corresponds to OpenAI Assistants built-in."""
|
|
113
|
-
assistants_builtin_tools = ("code_interpreter", "file_search")
|
|
114
|
-
return (
|
|
115
|
-
isinstance(tool, dict)
|
|
116
|
-
and ("type" in tool)
|
|
117
|
-
and (tool["type"] in assistants_builtin_tools)
|
|
118
|
-
)
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
def _get_assistants_tool(
|
|
122
|
-
tool: Union[dict[str, Any], type[BaseModel], Callable, BaseTool],
|
|
123
|
-
) -> dict[str, Any]:
|
|
124
|
-
"""Convert a raw function/class to an OpenAI tool.
|
|
125
|
-
|
|
126
|
-
Note that OpenAI assistants supports several built-in tools,
|
|
127
|
-
such as "code_interpreter" and "file_search".
|
|
128
|
-
"""
|
|
129
|
-
if _is_assistants_builtin_tool(tool):
|
|
130
|
-
return tool # type: ignore[return-value]
|
|
131
|
-
return convert_to_openai_tool(tool)
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
OutputType = Union[
|
|
135
|
-
list[OpenAIAssistantAction],
|
|
136
|
-
OpenAIAssistantFinish,
|
|
137
|
-
list["ThreadMessage"],
|
|
138
|
-
list["RequiredActionFunctionToolCall"],
|
|
139
|
-
]
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
class OpenAIAssistantRunnable(RunnableSerializable[dict, OutputType]):
|
|
143
|
-
"""Run an OpenAI Assistant.
|
|
144
|
-
|
|
145
|
-
Example using OpenAI tools:
|
|
146
|
-
.. code-block:: python
|
|
147
|
-
|
|
148
|
-
from langchain_experimental.openai_assistant import OpenAIAssistantRunnable
|
|
149
|
-
|
|
150
|
-
interpreter_assistant = OpenAIAssistantRunnable.create_assistant(
|
|
151
|
-
name="langchain assistant",
|
|
152
|
-
instructions="You are a personal math tutor. Write and run code to answer math questions.",
|
|
153
|
-
tools=[{"type": "code_interpreter"}],
|
|
154
|
-
model="gpt-4-1106-preview"
|
|
155
|
-
)
|
|
156
|
-
output = interpreter_assistant.invoke({"content": "What's 10 - 4 raised to the 2.7"})
|
|
157
|
-
|
|
158
|
-
Example using custom tools and AgentExecutor:
|
|
159
|
-
.. code-block:: python
|
|
160
|
-
|
|
161
|
-
from langchain_experimental.openai_assistant import OpenAIAssistantRunnable
|
|
162
|
-
from langchain.agents import AgentExecutor
|
|
163
|
-
from langchain.tools import E2BDataAnalysisTool
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
tools = [E2BDataAnalysisTool(api_key="...")]
|
|
167
|
-
agent = OpenAIAssistantRunnable.create_assistant(
|
|
168
|
-
name="langchain assistant e2b tool",
|
|
169
|
-
instructions="You are a personal math tutor. Write and run code to answer math questions.",
|
|
170
|
-
tools=tools,
|
|
171
|
-
model="gpt-4-1106-preview",
|
|
172
|
-
as_agent=True
|
|
173
|
-
)
|
|
174
|
-
|
|
175
|
-
agent_executor = AgentExecutor(agent=agent, tools=tools)
|
|
176
|
-
agent_executor.invoke({"content": "What's 10 - 4 raised to the 2.7"})
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
Example using custom tools and custom execution:
|
|
180
|
-
.. code-block:: python
|
|
181
|
-
|
|
182
|
-
from langchain_experimental.openai_assistant import OpenAIAssistantRunnable
|
|
183
|
-
from langchain.agents import AgentExecutor
|
|
184
|
-
from langchain_core.agents import AgentFinish
|
|
185
|
-
from langchain.tools import E2BDataAnalysisTool
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
tools = [E2BDataAnalysisTool(api_key="...")]
|
|
189
|
-
agent = OpenAIAssistantRunnable.create_assistant(
|
|
190
|
-
name="langchain assistant e2b tool",
|
|
191
|
-
instructions="You are a personal math tutor. Write and run code to answer math questions.",
|
|
192
|
-
tools=tools,
|
|
193
|
-
model="gpt-4-1106-preview",
|
|
194
|
-
as_agent=True
|
|
195
|
-
)
|
|
196
|
-
|
|
197
|
-
def execute_agent(agent, tools, input):
|
|
198
|
-
tool_map = {tool.name: tool for tool in tools}
|
|
199
|
-
response = agent.invoke(input)
|
|
200
|
-
while not isinstance(response, AgentFinish):
|
|
201
|
-
tool_outputs = []
|
|
202
|
-
for action in response:
|
|
203
|
-
tool_output = tool_map[action.tool].invoke(action.tool_input)
|
|
204
|
-
tool_outputs.append({"output": tool_output, "tool_call_id": action.tool_call_id})
|
|
205
|
-
response = agent.invoke(
|
|
206
|
-
{
|
|
207
|
-
"tool_outputs": tool_outputs,
|
|
208
|
-
"run_id": action.run_id,
|
|
209
|
-
"thread_id": action.thread_id
|
|
210
|
-
}
|
|
211
|
-
)
|
|
212
|
-
|
|
213
|
-
return response
|
|
214
|
-
|
|
215
|
-
response = execute_agent(agent, tools, {"content": "What's 10 - 4 raised to the 2.7"})
|
|
216
|
-
next_response = execute_agent(agent, tools, {"content": "now add 17.241", "thread_id": response.thread_id})
|
|
217
|
-
|
|
218
|
-
""" # noqa: E501
|
|
219
|
-
|
|
220
|
-
client: Any = Field(default_factory=_get_openai_client)
|
|
221
|
-
"""OpenAI or AzureOpenAI client."""
|
|
222
|
-
async_client: Any = None
|
|
223
|
-
"""OpenAI or AzureOpenAI async client."""
|
|
224
|
-
assistant_id: str
|
|
225
|
-
"""OpenAI assistant id."""
|
|
226
|
-
check_every_ms: float = 1_000.0
|
|
227
|
-
"""Frequency with which to check run progress in ms."""
|
|
228
|
-
as_agent: bool = False
|
|
229
|
-
"""Use as a LangChain agent, compatible with the AgentExecutor."""
|
|
230
|
-
|
|
231
|
-
@model_validator(mode="after")
|
|
232
|
-
def _validate_async_client(self) -> Self:
|
|
233
|
-
if self.async_client is None:
|
|
234
|
-
import openai
|
|
235
|
-
|
|
236
|
-
api_key = self.client.api_key
|
|
237
|
-
self.async_client = openai.AsyncOpenAI(api_key=api_key)
|
|
238
|
-
return self
|
|
239
|
-
|
|
240
|
-
@classmethod
|
|
241
|
-
def create_assistant(
|
|
242
|
-
cls,
|
|
243
|
-
name: str,
|
|
244
|
-
instructions: str,
|
|
245
|
-
tools: Sequence[Union[BaseTool, dict]],
|
|
246
|
-
model: str,
|
|
247
|
-
*,
|
|
248
|
-
client: Optional[Union[openai.OpenAI, openai.AzureOpenAI]] = None,
|
|
249
|
-
**kwargs: Any,
|
|
250
|
-
) -> OpenAIAssistantRunnable:
|
|
251
|
-
"""Create an OpenAI Assistant and instantiate the Runnable.
|
|
252
|
-
|
|
253
|
-
Args:
|
|
254
|
-
name: Assistant name.
|
|
255
|
-
instructions: Assistant instructions.
|
|
256
|
-
tools: Assistant tools. Can be passed in OpenAI format or as BaseTools.
|
|
257
|
-
model: Assistant model to use.
|
|
258
|
-
client: OpenAI or AzureOpenAI client.
|
|
259
|
-
Will create a default OpenAI client if not specified.
|
|
260
|
-
kwargs: Additional arguments.
|
|
261
|
-
|
|
262
|
-
Returns:
|
|
263
|
-
OpenAIAssistantRunnable configured to run using the created assistant.
|
|
264
|
-
"""
|
|
265
|
-
client = client or _get_openai_client()
|
|
266
|
-
assistant = client.beta.assistants.create(
|
|
267
|
-
name=name,
|
|
268
|
-
instructions=instructions,
|
|
269
|
-
tools=[_get_assistants_tool(tool) for tool in tools], # type: ignore[misc]
|
|
270
|
-
model=model,
|
|
271
|
-
)
|
|
272
|
-
return cls(assistant_id=assistant.id, client=client, **kwargs)
|
|
273
|
-
|
|
274
|
-
@override
|
|
275
|
-
def invoke(
|
|
276
|
-
self,
|
|
277
|
-
input: dict,
|
|
278
|
-
config: Optional[RunnableConfig] = None,
|
|
279
|
-
**kwargs: Any,
|
|
280
|
-
) -> OutputType:
|
|
281
|
-
"""Invoke assistant.
|
|
282
|
-
|
|
283
|
-
Args:
|
|
284
|
-
input: Runnable input dict that can have:
|
|
285
|
-
content: User message when starting a new run.
|
|
286
|
-
thread_id: Existing thread to use.
|
|
287
|
-
run_id: Existing run to use. Should only be supplied when providing
|
|
288
|
-
the tool output for a required action after an initial invocation.
|
|
289
|
-
message_metadata: Metadata to associate with new message.
|
|
290
|
-
thread_metadata: Metadata to associate with new thread. Only relevant
|
|
291
|
-
when new thread being created.
|
|
292
|
-
instructions: Additional run instructions.
|
|
293
|
-
model: Override Assistant model for this run.
|
|
294
|
-
tools: Override Assistant tools for this run.
|
|
295
|
-
parallel_tool_calls: Allow Assistant to set parallel_tool_calls
|
|
296
|
-
for this run.
|
|
297
|
-
top_p: Override Assistant top_p for this run.
|
|
298
|
-
temperature: Override Assistant temperature for this run.
|
|
299
|
-
max_completion_tokens: Allow setting max_completion_tokens for this run.
|
|
300
|
-
max_prompt_tokens: Allow setting max_prompt_tokens for this run.
|
|
301
|
-
run_metadata: Metadata to associate with new run.
|
|
302
|
-
attachments: A list of files attached to the message, and the
|
|
303
|
-
tools they should be added to.
|
|
304
|
-
config: Runnable config. Defaults to None.
|
|
305
|
-
|
|
306
|
-
Return:
|
|
307
|
-
If self.as_agent, will return
|
|
308
|
-
Union[List[OpenAIAssistantAction], OpenAIAssistantFinish].
|
|
309
|
-
Otherwise, will return OpenAI types
|
|
310
|
-
Union[List[ThreadMessage], List[RequiredActionFunctionToolCall]].
|
|
311
|
-
"""
|
|
312
|
-
|
|
313
|
-
config = ensure_config(config)
|
|
314
|
-
callback_manager = CallbackManager.configure(
|
|
315
|
-
inheritable_callbacks=config.get("callbacks"),
|
|
316
|
-
inheritable_tags=config.get("tags"),
|
|
317
|
-
inheritable_metadata=config.get("metadata"),
|
|
318
|
-
)
|
|
319
|
-
run_manager = callback_manager.on_chain_start(
|
|
320
|
-
dumpd(self),
|
|
321
|
-
input,
|
|
322
|
-
name=config.get("run_name") or self.get_name(),
|
|
323
|
-
)
|
|
324
|
-
try:
|
|
325
|
-
# Being run within AgentExecutor and there are tool outputs to submit.
|
|
326
|
-
if self.as_agent and input.get("intermediate_steps"):
|
|
327
|
-
tool_outputs = self._parse_intermediate_steps(
|
|
328
|
-
input["intermediate_steps"],
|
|
329
|
-
)
|
|
330
|
-
run = self.client.beta.threads.runs.submit_tool_outputs(**tool_outputs)
|
|
331
|
-
# Starting a new thread and a new run.
|
|
332
|
-
elif "thread_id" not in input:
|
|
333
|
-
thread = {
|
|
334
|
-
"messages": [
|
|
335
|
-
{
|
|
336
|
-
"role": "user",
|
|
337
|
-
"content": input["content"],
|
|
338
|
-
"metadata": input.get("message_metadata"),
|
|
339
|
-
"attachments": input.get("attachments"),
|
|
340
|
-
},
|
|
341
|
-
],
|
|
342
|
-
"metadata": input.get("thread_metadata"),
|
|
343
|
-
}
|
|
344
|
-
run = self._create_thread_and_run(input, thread)
|
|
345
|
-
# Starting a new run in an existing thread.
|
|
346
|
-
elif "run_id" not in input:
|
|
347
|
-
_ = self.client.beta.threads.messages.create(
|
|
348
|
-
input["thread_id"],
|
|
349
|
-
content=input["content"],
|
|
350
|
-
role="user",
|
|
351
|
-
metadata=input.get("message_metadata"),
|
|
352
|
-
)
|
|
353
|
-
run = self._create_run(input)
|
|
354
|
-
# Submitting tool outputs to an existing run, outside the AgentExecutor
|
|
355
|
-
# framework.
|
|
356
|
-
else:
|
|
357
|
-
run = self.client.beta.threads.runs.submit_tool_outputs(**input)
|
|
358
|
-
run = self._wait_for_run(run.id, run.thread_id)
|
|
359
|
-
except BaseException as e:
|
|
360
|
-
run_manager.on_chain_error(e)
|
|
361
|
-
raise
|
|
362
|
-
try:
|
|
363
|
-
response = self._get_response(run)
|
|
364
|
-
except BaseException as e:
|
|
365
|
-
run_manager.on_chain_error(e, metadata=run.dict())
|
|
366
|
-
raise
|
|
367
|
-
else:
|
|
368
|
-
run_manager.on_chain_end(response)
|
|
369
|
-
return response
|
|
370
|
-
|
|
371
|
-
@classmethod
|
|
372
|
-
async def acreate_assistant(
|
|
373
|
-
cls,
|
|
374
|
-
name: str,
|
|
375
|
-
instructions: str,
|
|
376
|
-
tools: Sequence[Union[BaseTool, dict]],
|
|
377
|
-
model: str,
|
|
378
|
-
*,
|
|
379
|
-
async_client: Optional[
|
|
380
|
-
Union[openai.AsyncOpenAI, openai.AsyncAzureOpenAI]
|
|
381
|
-
] = None,
|
|
382
|
-
**kwargs: Any,
|
|
383
|
-
) -> OpenAIAssistantRunnable:
|
|
384
|
-
"""Async create an AsyncOpenAI Assistant and instantiate the Runnable.
|
|
385
|
-
|
|
386
|
-
Args:
|
|
387
|
-
name: Assistant name.
|
|
388
|
-
instructions: Assistant instructions.
|
|
389
|
-
tools: Assistant tools. Can be passed in OpenAI format or as BaseTools.
|
|
390
|
-
model: Assistant model to use.
|
|
391
|
-
async_client: AsyncOpenAI client.
|
|
392
|
-
Will create default async_client if not specified.
|
|
393
|
-
|
|
394
|
-
Returns:
|
|
395
|
-
AsyncOpenAIAssistantRunnable configured to run using the created assistant.
|
|
396
|
-
"""
|
|
397
|
-
async_client = async_client or _get_openai_async_client()
|
|
398
|
-
openai_tools = [_get_assistants_tool(tool) for tool in tools]
|
|
399
|
-
assistant = await async_client.beta.assistants.create(
|
|
400
|
-
name=name,
|
|
401
|
-
instructions=instructions,
|
|
402
|
-
tools=openai_tools, # type: ignore[arg-type]
|
|
403
|
-
model=model,
|
|
404
|
-
)
|
|
405
|
-
return cls(assistant_id=assistant.id, async_client=async_client, **kwargs)
|
|
406
|
-
|
|
407
|
-
@override
|
|
408
|
-
async def ainvoke(
|
|
409
|
-
self,
|
|
410
|
-
input: dict,
|
|
411
|
-
config: Optional[RunnableConfig] = None,
|
|
412
|
-
**kwargs: Any,
|
|
413
|
-
) -> OutputType:
|
|
414
|
-
"""Async invoke assistant.
|
|
415
|
-
|
|
416
|
-
Args:
|
|
417
|
-
input: Runnable input dict that can have:
|
|
418
|
-
content: User message when starting a new run.
|
|
419
|
-
thread_id: Existing thread to use.
|
|
420
|
-
run_id: Existing run to use. Should only be supplied when providing
|
|
421
|
-
the tool output for a required action after an initial invocation.
|
|
422
|
-
message_metadata: Metadata to associate with a new message.
|
|
423
|
-
thread_metadata: Metadata to associate with new thread. Only relevant
|
|
424
|
-
when a new thread is created.
|
|
425
|
-
instructions: Overrides the instructions of the assistant.
|
|
426
|
-
additional_instructions: Appends additional instructions.
|
|
427
|
-
model: Override Assistant model for this run.
|
|
428
|
-
tools: Override Assistant tools for this run.
|
|
429
|
-
parallel_tool_calls: Allow Assistant to set parallel_tool_calls
|
|
430
|
-
for this run.
|
|
431
|
-
top_p: Override Assistant top_p for this run.
|
|
432
|
-
temperature: Override Assistant temperature for this run.
|
|
433
|
-
max_completion_tokens: Allow setting max_completion_tokens for this run.
|
|
434
|
-
max_prompt_tokens: Allow setting max_prompt_tokens for this run.
|
|
435
|
-
run_metadata: Metadata to associate with new run.
|
|
436
|
-
config: Runnable config. Defaults to None.
|
|
437
|
-
kwargs: Additional arguments.
|
|
438
|
-
|
|
439
|
-
Return:
|
|
440
|
-
If self.as_agent, will return
|
|
441
|
-
Union[List[OpenAIAssistantAction], OpenAIAssistantFinish].
|
|
442
|
-
Otherwise, will return OpenAI types
|
|
443
|
-
Union[List[ThreadMessage], List[RequiredActionFunctionToolCall]].
|
|
444
|
-
"""
|
|
445
|
-
|
|
446
|
-
config = config or {}
|
|
447
|
-
callback_manager = CallbackManager.configure(
|
|
448
|
-
inheritable_callbacks=config.get("callbacks"),
|
|
449
|
-
inheritable_tags=config.get("tags"),
|
|
450
|
-
inheritable_metadata=config.get("metadata"),
|
|
451
|
-
)
|
|
452
|
-
run_manager = callback_manager.on_chain_start(
|
|
453
|
-
dumpd(self),
|
|
454
|
-
input,
|
|
455
|
-
name=config.get("run_name") or self.get_name(),
|
|
456
|
-
)
|
|
457
|
-
try:
|
|
458
|
-
# Being run within AgentExecutor and there are tool outputs to submit.
|
|
459
|
-
if self.as_agent and input.get("intermediate_steps"):
|
|
460
|
-
tool_outputs = await self._aparse_intermediate_steps(
|
|
461
|
-
input["intermediate_steps"],
|
|
462
|
-
)
|
|
463
|
-
run = await self.async_client.beta.threads.runs.submit_tool_outputs(
|
|
464
|
-
**tool_outputs,
|
|
465
|
-
)
|
|
466
|
-
# Starting a new thread and a new run.
|
|
467
|
-
elif "thread_id" not in input:
|
|
468
|
-
thread = {
|
|
469
|
-
"messages": [
|
|
470
|
-
{
|
|
471
|
-
"role": "user",
|
|
472
|
-
"content": input["content"],
|
|
473
|
-
"metadata": input.get("message_metadata"),
|
|
474
|
-
},
|
|
475
|
-
],
|
|
476
|
-
"metadata": input.get("thread_metadata"),
|
|
477
|
-
}
|
|
478
|
-
run = await self._acreate_thread_and_run(input, thread)
|
|
479
|
-
# Starting a new run in an existing thread.
|
|
480
|
-
elif "run_id" not in input:
|
|
481
|
-
_ = await self.async_client.beta.threads.messages.create(
|
|
482
|
-
input["thread_id"],
|
|
483
|
-
content=input["content"],
|
|
484
|
-
role="user",
|
|
485
|
-
metadata=input.get("message_metadata"),
|
|
486
|
-
)
|
|
487
|
-
run = await self._acreate_run(input)
|
|
488
|
-
# Submitting tool outputs to an existing run, outside the AgentExecutor
|
|
489
|
-
# framework.
|
|
490
|
-
else:
|
|
491
|
-
run = await self.async_client.beta.threads.runs.submit_tool_outputs(
|
|
492
|
-
**input,
|
|
493
|
-
)
|
|
494
|
-
run = await self._await_for_run(run.id, run.thread_id)
|
|
495
|
-
except BaseException as e:
|
|
496
|
-
run_manager.on_chain_error(e)
|
|
497
|
-
raise
|
|
498
|
-
try:
|
|
499
|
-
response = self._get_response(run)
|
|
500
|
-
except BaseException as e:
|
|
501
|
-
run_manager.on_chain_error(e, metadata=run.dict())
|
|
502
|
-
raise
|
|
503
|
-
else:
|
|
504
|
-
run_manager.on_chain_end(response)
|
|
505
|
-
return response
|
|
506
|
-
|
|
507
|
-
def _parse_intermediate_steps(
|
|
508
|
-
self,
|
|
509
|
-
intermediate_steps: list[tuple[OpenAIAssistantAction, str]],
|
|
510
|
-
) -> dict:
|
|
511
|
-
last_action, last_output = intermediate_steps[-1]
|
|
512
|
-
run = self._wait_for_run(last_action.run_id, last_action.thread_id)
|
|
513
|
-
required_tool_call_ids = set()
|
|
514
|
-
if run.required_action:
|
|
515
|
-
required_tool_call_ids = {
|
|
516
|
-
tc.id for tc in run.required_action.submit_tool_outputs.tool_calls
|
|
517
|
-
}
|
|
518
|
-
tool_outputs = [
|
|
519
|
-
{"output": str(output), "tool_call_id": action.tool_call_id}
|
|
520
|
-
for action, output in intermediate_steps
|
|
521
|
-
if action.tool_call_id in required_tool_call_ids
|
|
522
|
-
]
|
|
523
|
-
return {
|
|
524
|
-
"tool_outputs": tool_outputs,
|
|
525
|
-
"run_id": last_action.run_id,
|
|
526
|
-
"thread_id": last_action.thread_id,
|
|
527
|
-
}
|
|
528
|
-
|
|
529
|
-
def _create_run(self, input_dict: dict) -> Any:
|
|
530
|
-
params = {
|
|
531
|
-
k: v
|
|
532
|
-
for k, v in input_dict.items()
|
|
533
|
-
if k
|
|
534
|
-
in (
|
|
535
|
-
"instructions",
|
|
536
|
-
"model",
|
|
537
|
-
"tools",
|
|
538
|
-
"additional_instructions",
|
|
539
|
-
"parallel_tool_calls",
|
|
540
|
-
"top_p",
|
|
541
|
-
"temperature",
|
|
542
|
-
"max_completion_tokens",
|
|
543
|
-
"max_prompt_tokens",
|
|
544
|
-
"run_metadata",
|
|
545
|
-
)
|
|
546
|
-
}
|
|
547
|
-
return self.client.beta.threads.runs.create(
|
|
548
|
-
input_dict["thread_id"],
|
|
549
|
-
assistant_id=self.assistant_id,
|
|
550
|
-
**params,
|
|
551
|
-
)
|
|
552
|
-
|
|
553
|
-
def _create_thread_and_run(self, input_dict: dict, thread: dict) -> Any:
|
|
554
|
-
params = {
|
|
555
|
-
k: v
|
|
556
|
-
for k, v in input_dict.items()
|
|
557
|
-
if k
|
|
558
|
-
in (
|
|
559
|
-
"instructions",
|
|
560
|
-
"model",
|
|
561
|
-
"tools",
|
|
562
|
-
"parallel_tool_calls",
|
|
563
|
-
"top_p",
|
|
564
|
-
"temperature",
|
|
565
|
-
"max_completion_tokens",
|
|
566
|
-
"max_prompt_tokens",
|
|
567
|
-
"run_metadata",
|
|
568
|
-
)
|
|
569
|
-
}
|
|
570
|
-
return self.client.beta.threads.create_and_run(
|
|
571
|
-
assistant_id=self.assistant_id,
|
|
572
|
-
thread=thread,
|
|
573
|
-
**params,
|
|
574
|
-
)
|
|
575
|
-
|
|
576
|
-
def _get_response(self, run: Any) -> Any:
|
|
577
|
-
# TODO: Pagination
|
|
578
|
-
|
|
579
|
-
if run.status == "completed":
|
|
580
|
-
import openai
|
|
581
|
-
|
|
582
|
-
major_version = int(openai.version.VERSION.split(".")[0])
|
|
583
|
-
minor_version = int(openai.version.VERSION.split(".")[1])
|
|
584
|
-
version_gte_1_14 = (major_version > 1) or (
|
|
585
|
-
major_version == 1 and minor_version >= 14 # noqa: PLR2004
|
|
586
|
-
)
|
|
587
|
-
|
|
588
|
-
messages = self.client.beta.threads.messages.list(
|
|
589
|
-
run.thread_id,
|
|
590
|
-
order="asc",
|
|
591
|
-
)
|
|
592
|
-
new_messages = [msg for msg in messages if msg.run_id == run.id]
|
|
593
|
-
if not self.as_agent:
|
|
594
|
-
return new_messages
|
|
595
|
-
answer: Any = [
|
|
596
|
-
msg_content for msg in new_messages for msg_content in msg.content
|
|
597
|
-
]
|
|
598
|
-
attachments = [
|
|
599
|
-
attachment for msg in new_messages for attachment in msg.attachments
|
|
600
|
-
]
|
|
601
|
-
if all(
|
|
602
|
-
(
|
|
603
|
-
isinstance(content, openai.types.beta.threads.TextContentBlock)
|
|
604
|
-
if version_gte_1_14
|
|
605
|
-
else isinstance(
|
|
606
|
-
content,
|
|
607
|
-
openai.types.beta.threads.MessageContentText, # type: ignore[attr-defined]
|
|
608
|
-
)
|
|
609
|
-
)
|
|
610
|
-
for content in answer
|
|
611
|
-
):
|
|
612
|
-
answer = "\n".join(content.text.value for content in answer)
|
|
613
|
-
return OpenAIAssistantFinish(
|
|
614
|
-
return_values={
|
|
615
|
-
"output": answer,
|
|
616
|
-
"thread_id": run.thread_id,
|
|
617
|
-
"run_id": run.id,
|
|
618
|
-
"attachments": attachments,
|
|
619
|
-
},
|
|
620
|
-
log="",
|
|
621
|
-
run_id=run.id,
|
|
622
|
-
thread_id=run.thread_id,
|
|
623
|
-
)
|
|
624
|
-
if run.status == "requires_action":
|
|
625
|
-
if not self.as_agent:
|
|
626
|
-
return run.required_action.submit_tool_outputs.tool_calls
|
|
627
|
-
actions = []
|
|
628
|
-
for tool_call in run.required_action.submit_tool_outputs.tool_calls:
|
|
629
|
-
function = tool_call.function
|
|
630
|
-
try:
|
|
631
|
-
args = json.loads(function.arguments, strict=False)
|
|
632
|
-
except JSONDecodeError as e:
|
|
633
|
-
msg = (
|
|
634
|
-
f"Received invalid JSON function arguments: "
|
|
635
|
-
f"{function.arguments} for function {function.name}"
|
|
636
|
-
)
|
|
637
|
-
raise ValueError(msg) from e
|
|
638
|
-
if len(args) == 1 and "__arg1" in args:
|
|
639
|
-
args = args["__arg1"]
|
|
640
|
-
actions.append(
|
|
641
|
-
OpenAIAssistantAction(
|
|
642
|
-
tool=function.name,
|
|
643
|
-
tool_input=args,
|
|
644
|
-
tool_call_id=tool_call.id,
|
|
645
|
-
log="",
|
|
646
|
-
run_id=run.id,
|
|
647
|
-
thread_id=run.thread_id,
|
|
648
|
-
),
|
|
649
|
-
)
|
|
650
|
-
return actions
|
|
651
|
-
run_info = json.dumps(run.dict(), indent=2)
|
|
652
|
-
msg = f"Unexpected run status: {run.status}. Full run info:\n\n{run_info}"
|
|
653
|
-
raise ValueError(msg)
|
|
654
|
-
|
|
655
|
-
def _wait_for_run(self, run_id: str, thread_id: str) -> Any:
|
|
656
|
-
in_progress = True
|
|
657
|
-
while in_progress:
|
|
658
|
-
run = self.client.beta.threads.runs.retrieve(run_id, thread_id=thread_id)
|
|
659
|
-
in_progress = run.status in ("in_progress", "queued")
|
|
660
|
-
if in_progress:
|
|
661
|
-
sleep(self.check_every_ms / 1000)
|
|
662
|
-
return run
|
|
663
|
-
|
|
664
|
-
async def _aparse_intermediate_steps(
|
|
665
|
-
self,
|
|
666
|
-
intermediate_steps: list[tuple[OpenAIAssistantAction, str]],
|
|
667
|
-
) -> dict:
|
|
668
|
-
last_action, last_output = intermediate_steps[-1]
|
|
669
|
-
run = self._wait_for_run(last_action.run_id, last_action.thread_id)
|
|
670
|
-
required_tool_call_ids = set()
|
|
671
|
-
if run.required_action:
|
|
672
|
-
required_tool_call_ids = {
|
|
673
|
-
tc.id for tc in run.required_action.submit_tool_outputs.tool_calls
|
|
674
|
-
}
|
|
675
|
-
tool_outputs = [
|
|
676
|
-
{"output": str(output), "tool_call_id": action.tool_call_id}
|
|
677
|
-
for action, output in intermediate_steps
|
|
678
|
-
if action.tool_call_id in required_tool_call_ids
|
|
679
|
-
]
|
|
680
|
-
return {
|
|
681
|
-
"tool_outputs": tool_outputs,
|
|
682
|
-
"run_id": last_action.run_id,
|
|
683
|
-
"thread_id": last_action.thread_id,
|
|
684
|
-
}
|
|
685
|
-
|
|
686
|
-
async def _acreate_run(self, input_dict: dict) -> Any:
|
|
687
|
-
params = {
|
|
688
|
-
k: v
|
|
689
|
-
for k, v in input_dict.items()
|
|
690
|
-
if k
|
|
691
|
-
in (
|
|
692
|
-
"instructions",
|
|
693
|
-
"model",
|
|
694
|
-
"tools",
|
|
695
|
-
"additional_instructions",
|
|
696
|
-
"parallel_tool_calls",
|
|
697
|
-
"top_p",
|
|
698
|
-
"temperature",
|
|
699
|
-
"max_completion_tokens",
|
|
700
|
-
"max_prompt_tokens",
|
|
701
|
-
"run_metadata",
|
|
702
|
-
)
|
|
703
|
-
}
|
|
704
|
-
return await self.async_client.beta.threads.runs.create(
|
|
705
|
-
input_dict["thread_id"],
|
|
706
|
-
assistant_id=self.assistant_id,
|
|
707
|
-
**params,
|
|
708
|
-
)
|
|
709
|
-
|
|
710
|
-
async def _acreate_thread_and_run(self, input_dict: dict, thread: dict) -> Any:
|
|
711
|
-
params = {
|
|
712
|
-
k: v
|
|
713
|
-
for k, v in input_dict.items()
|
|
714
|
-
if k
|
|
715
|
-
in (
|
|
716
|
-
"instructions",
|
|
717
|
-
"model",
|
|
718
|
-
"tools",
|
|
719
|
-
"parallel_tool_calls",
|
|
720
|
-
"top_p",
|
|
721
|
-
"temperature",
|
|
722
|
-
"max_completion_tokens",
|
|
723
|
-
"max_prompt_tokens",
|
|
724
|
-
"run_metadata",
|
|
725
|
-
)
|
|
726
|
-
}
|
|
727
|
-
return await self.async_client.beta.threads.create_and_run(
|
|
728
|
-
assistant_id=self.assistant_id,
|
|
729
|
-
thread=thread,
|
|
730
|
-
**params,
|
|
731
|
-
)
|
|
732
|
-
|
|
733
|
-
async def _aget_response(self, run: Any) -> Any:
|
|
734
|
-
# TODO: Pagination
|
|
735
|
-
|
|
736
|
-
if run.status == "completed":
|
|
737
|
-
import openai
|
|
738
|
-
|
|
739
|
-
major_version = int(openai.version.VERSION.split(".")[0])
|
|
740
|
-
minor_version = int(openai.version.VERSION.split(".")[1])
|
|
741
|
-
version_gte_1_14 = (major_version > 1) or (
|
|
742
|
-
major_version == 1 and minor_version >= 14 # noqa: PLR2004
|
|
743
|
-
)
|
|
744
|
-
|
|
745
|
-
messages = await self.async_client.beta.threads.messages.list(
|
|
746
|
-
run.thread_id,
|
|
747
|
-
order="asc",
|
|
748
|
-
)
|
|
749
|
-
new_messages = [msg for msg in messages if msg.run_id == run.id]
|
|
750
|
-
if not self.as_agent:
|
|
751
|
-
return new_messages
|
|
752
|
-
answer: Any = [
|
|
753
|
-
msg_content for msg in new_messages for msg_content in msg.content
|
|
754
|
-
]
|
|
755
|
-
if all(
|
|
756
|
-
(
|
|
757
|
-
isinstance(content, openai.types.beta.threads.TextContentBlock)
|
|
758
|
-
if version_gte_1_14
|
|
759
|
-
else isinstance(
|
|
760
|
-
content,
|
|
761
|
-
openai.types.beta.threads.MessageContentText, # type: ignore[attr-defined]
|
|
762
|
-
)
|
|
763
|
-
)
|
|
764
|
-
for content in answer
|
|
765
|
-
):
|
|
766
|
-
answer = "\n".join(content.text.value for content in answer)
|
|
767
|
-
return OpenAIAssistantFinish(
|
|
768
|
-
return_values={
|
|
769
|
-
"output": answer,
|
|
770
|
-
"thread_id": run.thread_id,
|
|
771
|
-
"run_id": run.id,
|
|
772
|
-
},
|
|
773
|
-
log="",
|
|
774
|
-
run_id=run.id,
|
|
775
|
-
thread_id=run.thread_id,
|
|
776
|
-
)
|
|
777
|
-
if run.status == "requires_action":
|
|
778
|
-
if not self.as_agent:
|
|
779
|
-
return run.required_action.submit_tool_outputs.tool_calls
|
|
780
|
-
actions = []
|
|
781
|
-
for tool_call in run.required_action.submit_tool_outputs.tool_calls:
|
|
782
|
-
function = tool_call.function
|
|
783
|
-
try:
|
|
784
|
-
args = json.loads(function.arguments, strict=False)
|
|
785
|
-
except JSONDecodeError as e:
|
|
786
|
-
msg = (
|
|
787
|
-
f"Received invalid JSON function arguments: "
|
|
788
|
-
f"{function.arguments} for function {function.name}"
|
|
789
|
-
)
|
|
790
|
-
raise ValueError(msg) from e
|
|
791
|
-
if len(args) == 1 and "__arg1" in args:
|
|
792
|
-
args = args["__arg1"]
|
|
793
|
-
actions.append(
|
|
794
|
-
OpenAIAssistantAction(
|
|
795
|
-
tool=function.name,
|
|
796
|
-
tool_input=args,
|
|
797
|
-
tool_call_id=tool_call.id,
|
|
798
|
-
log="",
|
|
799
|
-
run_id=run.id,
|
|
800
|
-
thread_id=run.thread_id,
|
|
801
|
-
),
|
|
802
|
-
)
|
|
803
|
-
return actions
|
|
804
|
-
run_info = json.dumps(run.dict(), indent=2)
|
|
805
|
-
msg = f"Unexpected run status: {run.status}. Full run info:\n\n{run_info}"
|
|
806
|
-
raise ValueError(msg)
|
|
807
|
-
|
|
808
|
-
async def _await_for_run(self, run_id: str, thread_id: str) -> Any:
|
|
809
|
-
in_progress = True
|
|
810
|
-
while in_progress:
|
|
811
|
-
run = await self.async_client.beta.threads.runs.retrieve(
|
|
812
|
-
run_id,
|
|
813
|
-
thread_id=thread_id,
|
|
814
|
-
)
|
|
815
|
-
in_progress = run.status in ("in_progress", "queued")
|
|
816
|
-
if in_progress:
|
|
817
|
-
await asyncio.sleep(self.check_every_ms / 1000)
|
|
818
|
-
return run
|