langchain 0.3.26__py3-none-any.whl → 0.4.0.dev0__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.
- langchain/__init__.py +110 -96
- langchain/_api/__init__.py +2 -2
- langchain/_api/deprecation.py +3 -3
- langchain/_api/module_import.py +51 -46
- langchain/_api/path.py +1 -1
- langchain/adapters/openai.py +8 -8
- langchain/agents/__init__.py +15 -12
- langchain/agents/agent.py +174 -151
- langchain/agents/agent_iterator.py +50 -26
- langchain/agents/agent_toolkits/__init__.py +7 -6
- langchain/agents/agent_toolkits/ainetwork/toolkit.py +1 -1
- langchain/agents/agent_toolkits/amadeus/toolkit.py +1 -1
- langchain/agents/agent_toolkits/azure_cognitive_services.py +1 -1
- langchain/agents/agent_toolkits/clickup/toolkit.py +1 -1
- langchain/agents/agent_toolkits/conversational_retrieval/openai_functions.py +6 -4
- langchain/agents/agent_toolkits/csv/__init__.py +4 -2
- langchain/agents/agent_toolkits/file_management/__init__.py +1 -1
- langchain/agents/agent_toolkits/file_management/toolkit.py +1 -1
- langchain/agents/agent_toolkits/github/toolkit.py +9 -9
- langchain/agents/agent_toolkits/gitlab/toolkit.py +1 -1
- langchain/agents/agent_toolkits/json/base.py +1 -1
- langchain/agents/agent_toolkits/multion/toolkit.py +1 -1
- langchain/agents/agent_toolkits/office365/toolkit.py +1 -1
- langchain/agents/agent_toolkits/openapi/base.py +1 -1
- langchain/agents/agent_toolkits/openapi/planner.py +2 -2
- langchain/agents/agent_toolkits/openapi/planner_prompt.py +10 -10
- langchain/agents/agent_toolkits/openapi/prompt.py +1 -1
- langchain/agents/agent_toolkits/openapi/toolkit.py +1 -1
- langchain/agents/agent_toolkits/pandas/__init__.py +4 -2
- langchain/agents/agent_toolkits/playwright/__init__.py +1 -1
- langchain/agents/agent_toolkits/playwright/toolkit.py +1 -1
- langchain/agents/agent_toolkits/powerbi/base.py +1 -1
- langchain/agents/agent_toolkits/powerbi/chat_base.py +1 -1
- langchain/agents/agent_toolkits/powerbi/prompt.py +2 -2
- langchain/agents/agent_toolkits/powerbi/toolkit.py +1 -1
- langchain/agents/agent_toolkits/python/__init__.py +4 -2
- langchain/agents/agent_toolkits/spark/__init__.py +4 -2
- langchain/agents/agent_toolkits/spark_sql/base.py +1 -1
- langchain/agents/agent_toolkits/spark_sql/toolkit.py +1 -1
- langchain/agents/agent_toolkits/sql/prompt.py +1 -1
- langchain/agents/agent_toolkits/sql/toolkit.py +1 -1
- langchain/agents/agent_toolkits/vectorstore/base.py +4 -2
- langchain/agents/agent_toolkits/vectorstore/prompt.py +2 -4
- langchain/agents/agent_toolkits/vectorstore/toolkit.py +12 -11
- langchain/agents/agent_toolkits/xorbits/__init__.py +4 -2
- langchain/agents/agent_toolkits/zapier/toolkit.py +1 -1
- langchain/agents/agent_types.py +6 -6
- langchain/agents/chat/base.py +8 -12
- langchain/agents/chat/output_parser.py +9 -6
- langchain/agents/chat/prompt.py +3 -4
- langchain/agents/conversational/base.py +11 -5
- langchain/agents/conversational/output_parser.py +4 -2
- langchain/agents/conversational/prompt.py +2 -3
- langchain/agents/conversational_chat/base.py +9 -5
- langchain/agents/conversational_chat/output_parser.py +9 -11
- langchain/agents/conversational_chat/prompt.py +5 -6
- langchain/agents/format_scratchpad/__init__.py +3 -3
- langchain/agents/format_scratchpad/log_to_messages.py +1 -1
- langchain/agents/format_scratchpad/openai_functions.py +8 -6
- langchain/agents/format_scratchpad/tools.py +5 -3
- langchain/agents/format_scratchpad/xml.py +33 -2
- langchain/agents/initialize.py +17 -9
- langchain/agents/json_chat/base.py +19 -18
- langchain/agents/json_chat/prompt.py +2 -3
- langchain/agents/load_tools.py +2 -1
- langchain/agents/loading.py +28 -18
- langchain/agents/mrkl/base.py +11 -4
- langchain/agents/mrkl/output_parser.py +17 -13
- langchain/agents/mrkl/prompt.py +1 -2
- langchain/agents/openai_assistant/base.py +81 -71
- langchain/agents/openai_functions_agent/agent_token_buffer_memory.py +2 -0
- langchain/agents/openai_functions_agent/base.py +47 -37
- langchain/agents/openai_functions_multi_agent/base.py +40 -27
- langchain/agents/openai_tools/base.py +9 -8
- langchain/agents/output_parsers/__init__.py +3 -3
- langchain/agents/output_parsers/json.py +8 -6
- langchain/agents/output_parsers/openai_functions.py +24 -9
- langchain/agents/output_parsers/openai_tools.py +16 -4
- langchain/agents/output_parsers/react_json_single_input.py +13 -5
- langchain/agents/output_parsers/react_single_input.py +18 -11
- langchain/agents/output_parsers/self_ask.py +5 -2
- langchain/agents/output_parsers/tools.py +32 -13
- langchain/agents/output_parsers/xml.py +102 -28
- langchain/agents/react/agent.py +5 -4
- langchain/agents/react/base.py +26 -17
- langchain/agents/react/output_parser.py +7 -6
- langchain/agents/react/textworld_prompt.py +0 -1
- langchain/agents/react/wiki_prompt.py +14 -15
- langchain/agents/schema.py +5 -2
- langchain/agents/self_ask_with_search/base.py +23 -15
- langchain/agents/self_ask_with_search/prompt.py +0 -1
- langchain/agents/structured_chat/base.py +19 -11
- langchain/agents/structured_chat/output_parser.py +29 -18
- langchain/agents/structured_chat/prompt.py +3 -4
- langchain/agents/tool_calling_agent/base.py +8 -6
- langchain/agents/tools.py +5 -2
- langchain/agents/utils.py +2 -3
- langchain/agents/xml/base.py +12 -6
- langchain/agents/xml/prompt.py +1 -2
- langchain/cache.py +12 -12
- langchain/callbacks/__init__.py +11 -11
- langchain/callbacks/aim_callback.py +2 -2
- langchain/callbacks/argilla_callback.py +1 -1
- langchain/callbacks/arize_callback.py +1 -1
- langchain/callbacks/arthur_callback.py +1 -1
- langchain/callbacks/base.py +7 -7
- langchain/callbacks/clearml_callback.py +1 -1
- langchain/callbacks/comet_ml_callback.py +1 -1
- langchain/callbacks/confident_callback.py +1 -1
- langchain/callbacks/context_callback.py +1 -1
- langchain/callbacks/flyte_callback.py +1 -1
- langchain/callbacks/human.py +2 -2
- langchain/callbacks/infino_callback.py +1 -1
- langchain/callbacks/labelstudio_callback.py +1 -1
- langchain/callbacks/llmonitor_callback.py +1 -1
- langchain/callbacks/manager.py +5 -5
- langchain/callbacks/mlflow_callback.py +2 -2
- langchain/callbacks/openai_info.py +1 -1
- langchain/callbacks/promptlayer_callback.py +1 -1
- langchain/callbacks/sagemaker_callback.py +1 -1
- langchain/callbacks/streaming_aiter.py +17 -3
- langchain/callbacks/streaming_aiter_final_only.py +16 -5
- langchain/callbacks/streaming_stdout_final_only.py +10 -3
- langchain/callbacks/streamlit/__init__.py +3 -2
- langchain/callbacks/streamlit/mutable_expander.py +1 -1
- langchain/callbacks/streamlit/streamlit_callback_handler.py +3 -3
- langchain/callbacks/tracers/__init__.py +1 -1
- langchain/callbacks/tracers/comet.py +1 -1
- langchain/callbacks/tracers/evaluation.py +1 -1
- langchain/callbacks/tracers/log_stream.py +1 -1
- langchain/callbacks/tracers/logging.py +12 -1
- langchain/callbacks/tracers/stdout.py +1 -1
- langchain/callbacks/trubrics_callback.py +1 -1
- langchain/callbacks/utils.py +4 -4
- langchain/callbacks/wandb_callback.py +1 -1
- langchain/callbacks/whylabs_callback.py +1 -1
- langchain/chains/api/base.py +41 -23
- langchain/chains/api/news_docs.py +1 -2
- langchain/chains/api/open_meteo_docs.py +1 -2
- langchain/chains/api/openapi/requests_chain.py +1 -1
- langchain/chains/api/openapi/response_chain.py +1 -1
- langchain/chains/api/podcast_docs.py +1 -2
- langchain/chains/api/prompt.py +1 -2
- langchain/chains/api/tmdb_docs.py +1 -2
- langchain/chains/base.py +96 -56
- langchain/chains/chat_vector_db/prompts.py +2 -3
- langchain/chains/combine_documents/__init__.py +1 -1
- langchain/chains/combine_documents/base.py +30 -11
- langchain/chains/combine_documents/map_reduce.py +41 -30
- langchain/chains/combine_documents/map_rerank.py +39 -24
- langchain/chains/combine_documents/reduce.py +48 -26
- langchain/chains/combine_documents/refine.py +27 -17
- langchain/chains/combine_documents/stuff.py +24 -13
- langchain/chains/constitutional_ai/base.py +11 -4
- langchain/chains/constitutional_ai/principles.py +22 -25
- langchain/chains/constitutional_ai/prompts.py +25 -28
- langchain/chains/conversation/base.py +9 -4
- langchain/chains/conversation/memory.py +5 -5
- langchain/chains/conversation/prompt.py +5 -5
- langchain/chains/conversational_retrieval/base.py +108 -79
- langchain/chains/conversational_retrieval/prompts.py +2 -3
- langchain/chains/elasticsearch_database/base.py +10 -10
- langchain/chains/elasticsearch_database/prompts.py +2 -3
- langchain/chains/ernie_functions/__init__.py +2 -2
- langchain/chains/example_generator.py +3 -1
- langchain/chains/flare/base.py +28 -12
- langchain/chains/flare/prompts.py +2 -0
- langchain/chains/graph_qa/cypher.py +2 -2
- langchain/chains/graph_qa/falkordb.py +1 -1
- langchain/chains/graph_qa/gremlin.py +1 -1
- langchain/chains/graph_qa/neptune_sparql.py +1 -1
- langchain/chains/graph_qa/prompts.py +2 -2
- langchain/chains/history_aware_retriever.py +2 -1
- langchain/chains/hyde/base.py +6 -5
- langchain/chains/hyde/prompts.py +5 -6
- langchain/chains/llm.py +82 -61
- langchain/chains/llm_bash/__init__.py +3 -2
- langchain/chains/llm_checker/base.py +19 -6
- langchain/chains/llm_checker/prompt.py +3 -4
- langchain/chains/llm_math/base.py +25 -10
- langchain/chains/llm_math/prompt.py +1 -2
- langchain/chains/llm_summarization_checker/base.py +22 -7
- langchain/chains/llm_symbolic_math/__init__.py +3 -2
- langchain/chains/loading.py +155 -97
- langchain/chains/mapreduce.py +4 -3
- langchain/chains/moderation.py +11 -9
- langchain/chains/natbot/base.py +11 -9
- langchain/chains/natbot/crawler.py +102 -76
- langchain/chains/natbot/prompt.py +2 -3
- langchain/chains/openai_functions/__init__.py +7 -7
- langchain/chains/openai_functions/base.py +15 -10
- langchain/chains/openai_functions/citation_fuzzy_match.py +21 -11
- langchain/chains/openai_functions/extraction.py +19 -19
- langchain/chains/openai_functions/openapi.py +39 -35
- langchain/chains/openai_functions/qa_with_structure.py +22 -15
- langchain/chains/openai_functions/tagging.py +4 -4
- langchain/chains/openai_tools/extraction.py +7 -8
- langchain/chains/qa_generation/base.py +8 -3
- langchain/chains/qa_generation/prompt.py +5 -5
- langchain/chains/qa_with_sources/base.py +17 -6
- langchain/chains/qa_with_sources/loading.py +16 -8
- langchain/chains/qa_with_sources/map_reduce_prompt.py +8 -9
- langchain/chains/qa_with_sources/refine_prompts.py +0 -1
- langchain/chains/qa_with_sources/retrieval.py +15 -6
- langchain/chains/qa_with_sources/stuff_prompt.py +6 -7
- langchain/chains/qa_with_sources/vector_db.py +21 -8
- langchain/chains/query_constructor/base.py +37 -34
- langchain/chains/query_constructor/ir.py +4 -4
- langchain/chains/query_constructor/parser.py +101 -34
- langchain/chains/query_constructor/prompt.py +5 -6
- langchain/chains/question_answering/chain.py +21 -10
- langchain/chains/question_answering/map_reduce_prompt.py +14 -14
- langchain/chains/question_answering/map_rerank_prompt.py +3 -3
- langchain/chains/question_answering/refine_prompts.py +2 -5
- langchain/chains/question_answering/stuff_prompt.py +5 -5
- langchain/chains/retrieval.py +1 -3
- langchain/chains/retrieval_qa/base.py +38 -27
- langchain/chains/retrieval_qa/prompt.py +1 -2
- langchain/chains/router/__init__.py +3 -3
- langchain/chains/router/base.py +38 -22
- langchain/chains/router/embedding_router.py +15 -8
- langchain/chains/router/llm_router.py +23 -20
- langchain/chains/router/multi_prompt.py +5 -2
- langchain/chains/router/multi_retrieval_qa.py +28 -5
- langchain/chains/sequential.py +30 -18
- langchain/chains/sql_database/prompt.py +14 -16
- langchain/chains/sql_database/query.py +7 -5
- langchain/chains/structured_output/__init__.py +1 -1
- langchain/chains/structured_output/base.py +77 -67
- langchain/chains/summarize/chain.py +11 -5
- langchain/chains/summarize/map_reduce_prompt.py +0 -1
- langchain/chains/summarize/stuff_prompt.py +0 -1
- langchain/chains/transform.py +9 -6
- langchain/chat_loaders/facebook_messenger.py +1 -1
- langchain/chat_loaders/langsmith.py +1 -1
- langchain/chat_loaders/utils.py +3 -3
- langchain/chat_models/__init__.py +20 -19
- langchain/chat_models/anthropic.py +1 -1
- langchain/chat_models/azureml_endpoint.py +1 -1
- langchain/chat_models/baidu_qianfan_endpoint.py +1 -1
- langchain/chat_models/base.py +213 -139
- langchain/chat_models/bedrock.py +1 -1
- langchain/chat_models/fake.py +1 -1
- langchain/chat_models/meta.py +1 -1
- langchain/chat_models/pai_eas_endpoint.py +1 -1
- langchain/chat_models/promptlayer_openai.py +1 -1
- langchain/chat_models/volcengine_maas.py +1 -1
- langchain/docstore/base.py +1 -1
- langchain/document_loaders/__init__.py +9 -9
- langchain/document_loaders/airbyte.py +3 -3
- langchain/document_loaders/assemblyai.py +1 -1
- langchain/document_loaders/azure_blob_storage_container.py +1 -1
- langchain/document_loaders/azure_blob_storage_file.py +1 -1
- langchain/document_loaders/baiducloud_bos_file.py +1 -1
- langchain/document_loaders/base.py +1 -1
- langchain/document_loaders/blob_loaders/__init__.py +1 -1
- langchain/document_loaders/blob_loaders/schema.py +1 -4
- langchain/document_loaders/blockchain.py +1 -1
- langchain/document_loaders/chatgpt.py +1 -1
- langchain/document_loaders/college_confidential.py +1 -1
- langchain/document_loaders/confluence.py +1 -1
- langchain/document_loaders/email.py +1 -1
- langchain/document_loaders/facebook_chat.py +1 -1
- langchain/document_loaders/markdown.py +1 -1
- langchain/document_loaders/notebook.py +1 -1
- langchain/document_loaders/org_mode.py +1 -1
- langchain/document_loaders/parsers/__init__.py +1 -1
- langchain/document_loaders/parsers/docai.py +1 -1
- langchain/document_loaders/parsers/generic.py +1 -1
- langchain/document_loaders/parsers/html/__init__.py +1 -1
- langchain/document_loaders/parsers/html/bs4.py +1 -1
- langchain/document_loaders/parsers/language/cobol.py +1 -1
- langchain/document_loaders/parsers/language/python.py +1 -1
- langchain/document_loaders/parsers/msword.py +1 -1
- langchain/document_loaders/parsers/pdf.py +5 -5
- langchain/document_loaders/parsers/registry.py +1 -1
- langchain/document_loaders/pdf.py +8 -8
- langchain/document_loaders/powerpoint.py +1 -1
- langchain/document_loaders/pyspark_dataframe.py +1 -1
- langchain/document_loaders/telegram.py +2 -2
- langchain/document_loaders/tencent_cos_directory.py +1 -1
- langchain/document_loaders/unstructured.py +5 -5
- langchain/document_loaders/url_playwright.py +1 -1
- langchain/document_loaders/whatsapp_chat.py +1 -1
- langchain/document_loaders/youtube.py +2 -2
- langchain/document_transformers/__init__.py +3 -3
- langchain/document_transformers/beautiful_soup_transformer.py +1 -1
- langchain/document_transformers/doctran_text_extract.py +1 -1
- langchain/document_transformers/doctran_text_qa.py +1 -1
- langchain/document_transformers/doctran_text_translate.py +1 -1
- langchain/document_transformers/embeddings_redundant_filter.py +3 -3
- langchain/document_transformers/google_translate.py +1 -1
- langchain/document_transformers/html2text.py +1 -1
- langchain/document_transformers/nuclia_text_transform.py +1 -1
- langchain/embeddings/__init__.py +5 -5
- langchain/embeddings/base.py +35 -24
- langchain/embeddings/cache.py +37 -32
- langchain/embeddings/fake.py +1 -1
- langchain/embeddings/huggingface.py +2 -2
- langchain/evaluation/__init__.py +22 -22
- langchain/evaluation/agents/trajectory_eval_chain.py +26 -25
- langchain/evaluation/agents/trajectory_eval_prompt.py +6 -9
- langchain/evaluation/comparison/__init__.py +1 -1
- langchain/evaluation/comparison/eval_chain.py +21 -13
- langchain/evaluation/comparison/prompt.py +1 -2
- langchain/evaluation/criteria/__init__.py +1 -1
- langchain/evaluation/criteria/eval_chain.py +23 -11
- langchain/evaluation/criteria/prompt.py +2 -3
- langchain/evaluation/embedding_distance/base.py +34 -20
- langchain/evaluation/exact_match/base.py +14 -1
- langchain/evaluation/loading.py +16 -11
- langchain/evaluation/parsing/base.py +20 -4
- langchain/evaluation/parsing/json_distance.py +24 -10
- langchain/evaluation/parsing/json_schema.py +13 -12
- langchain/evaluation/qa/__init__.py +1 -1
- langchain/evaluation/qa/eval_chain.py +20 -5
- langchain/evaluation/qa/eval_prompt.py +7 -8
- langchain/evaluation/qa/generate_chain.py +4 -1
- langchain/evaluation/qa/generate_prompt.py +2 -4
- langchain/evaluation/regex_match/base.py +9 -1
- langchain/evaluation/schema.py +38 -30
- langchain/evaluation/scoring/__init__.py +1 -1
- langchain/evaluation/scoring/eval_chain.py +23 -15
- langchain/evaluation/scoring/prompt.py +0 -1
- langchain/evaluation/string_distance/base.py +20 -9
- langchain/globals.py +12 -11
- langchain/graphs/__init__.py +6 -6
- langchain/graphs/graph_document.py +1 -1
- langchain/graphs/networkx_graph.py +2 -2
- langchain/hub.py +9 -11
- langchain/indexes/__init__.py +3 -3
- langchain/indexes/_sql_record_manager.py +63 -46
- langchain/indexes/prompts/entity_extraction.py +1 -2
- langchain/indexes/prompts/entity_summarization.py +1 -2
- langchain/indexes/prompts/knowledge_triplet_extraction.py +1 -3
- langchain/indexes/vectorstore.py +35 -19
- langchain/llms/__init__.py +13 -13
- langchain/llms/ai21.py +1 -1
- langchain/llms/azureml_endpoint.py +4 -4
- langchain/llms/base.py +15 -7
- langchain/llms/bedrock.py +1 -1
- langchain/llms/cloudflare_workersai.py +1 -1
- langchain/llms/gradient_ai.py +1 -1
- langchain/llms/loading.py +1 -1
- langchain/llms/openai.py +1 -1
- langchain/llms/sagemaker_endpoint.py +1 -1
- langchain/load/dump.py +1 -1
- langchain/load/load.py +1 -1
- langchain/load/serializable.py +3 -3
- langchain/memory/__init__.py +3 -3
- langchain/memory/buffer.py +14 -7
- langchain/memory/buffer_window.py +2 -0
- langchain/memory/chat_memory.py +14 -8
- langchain/memory/chat_message_histories/__init__.py +1 -1
- langchain/memory/chat_message_histories/astradb.py +1 -1
- langchain/memory/chat_message_histories/cassandra.py +1 -1
- langchain/memory/chat_message_histories/cosmos_db.py +1 -1
- langchain/memory/chat_message_histories/dynamodb.py +1 -1
- langchain/memory/chat_message_histories/elasticsearch.py +1 -1
- langchain/memory/chat_message_histories/file.py +1 -1
- langchain/memory/chat_message_histories/firestore.py +1 -1
- langchain/memory/chat_message_histories/momento.py +1 -1
- langchain/memory/chat_message_histories/mongodb.py +1 -1
- langchain/memory/chat_message_histories/neo4j.py +1 -1
- langchain/memory/chat_message_histories/postgres.py +1 -1
- langchain/memory/chat_message_histories/redis.py +1 -1
- langchain/memory/chat_message_histories/rocksetdb.py +1 -1
- langchain/memory/chat_message_histories/singlestoredb.py +1 -1
- langchain/memory/chat_message_histories/streamlit.py +1 -1
- langchain/memory/chat_message_histories/upstash_redis.py +1 -1
- langchain/memory/chat_message_histories/xata.py +1 -1
- langchain/memory/chat_message_histories/zep.py +1 -1
- langchain/memory/combined.py +14 -13
- langchain/memory/entity.py +131 -61
- langchain/memory/prompt.py +10 -11
- langchain/memory/readonly.py +0 -2
- langchain/memory/simple.py +4 -3
- langchain/memory/summary.py +43 -11
- langchain/memory/summary_buffer.py +20 -8
- langchain/memory/token_buffer.py +2 -0
- langchain/memory/utils.py +3 -2
- langchain/memory/vectorstore.py +12 -5
- langchain/memory/vectorstore_token_buffer_memory.py +5 -5
- langchain/model_laboratory.py +12 -11
- langchain/output_parsers/__init__.py +4 -4
- langchain/output_parsers/boolean.py +7 -4
- langchain/output_parsers/combining.py +14 -7
- langchain/output_parsers/datetime.py +32 -31
- langchain/output_parsers/enum.py +10 -4
- langchain/output_parsers/fix.py +60 -53
- langchain/output_parsers/format_instructions.py +6 -8
- langchain/output_parsers/json.py +2 -2
- langchain/output_parsers/list.py +2 -2
- langchain/output_parsers/loading.py +9 -9
- langchain/output_parsers/openai_functions.py +3 -3
- langchain/output_parsers/openai_tools.py +1 -1
- langchain/output_parsers/pandas_dataframe.py +59 -48
- langchain/output_parsers/prompts.py +1 -2
- langchain/output_parsers/rail_parser.py +1 -1
- langchain/output_parsers/regex.py +9 -8
- langchain/output_parsers/regex_dict.py +7 -10
- langchain/output_parsers/retry.py +99 -80
- langchain/output_parsers/structured.py +21 -6
- langchain/output_parsers/yaml.py +19 -11
- langchain/prompts/__init__.py +5 -3
- langchain/prompts/base.py +5 -5
- langchain/prompts/chat.py +8 -8
- langchain/prompts/example_selector/__init__.py +3 -1
- langchain/prompts/example_selector/semantic_similarity.py +2 -2
- langchain/prompts/few_shot.py +1 -1
- langchain/prompts/loading.py +3 -3
- langchain/prompts/prompt.py +1 -1
- langchain/pydantic_v1/__init__.py +1 -1
- langchain/retrievers/__init__.py +5 -5
- langchain/retrievers/bedrock.py +2 -2
- langchain/retrievers/bm25.py +1 -1
- langchain/retrievers/contextual_compression.py +14 -8
- langchain/retrievers/docarray.py +1 -1
- langchain/retrievers/document_compressors/__init__.py +5 -4
- langchain/retrievers/document_compressors/base.py +12 -6
- langchain/retrievers/document_compressors/chain_extract.py +5 -3
- langchain/retrievers/document_compressors/chain_extract_prompt.py +2 -3
- langchain/retrievers/document_compressors/chain_filter.py +9 -9
- langchain/retrievers/document_compressors/chain_filter_prompt.py +1 -2
- langchain/retrievers/document_compressors/cohere_rerank.py +17 -15
- langchain/retrievers/document_compressors/cross_encoder_rerank.py +2 -0
- langchain/retrievers/document_compressors/embeddings_filter.py +24 -17
- langchain/retrievers/document_compressors/flashrank_rerank.py +1 -1
- langchain/retrievers/document_compressors/listwise_rerank.py +8 -5
- langchain/retrievers/ensemble.py +30 -27
- langchain/retrievers/google_cloud_documentai_warehouse.py +1 -1
- langchain/retrievers/google_vertex_ai_search.py +2 -2
- langchain/retrievers/kendra.py +10 -10
- langchain/retrievers/llama_index.py +1 -1
- langchain/retrievers/merger_retriever.py +11 -11
- langchain/retrievers/milvus.py +1 -1
- langchain/retrievers/multi_query.py +35 -27
- langchain/retrievers/multi_vector.py +24 -9
- langchain/retrievers/parent_document_retriever.py +33 -9
- langchain/retrievers/re_phraser.py +6 -5
- langchain/retrievers/self_query/base.py +157 -127
- langchain/retrievers/time_weighted_retriever.py +21 -7
- langchain/retrievers/zilliz.py +1 -1
- langchain/runnables/hub.py +12 -0
- langchain/runnables/openai_functions.py +12 -2
- langchain/schema/__init__.py +23 -23
- langchain/schema/cache.py +1 -1
- langchain/schema/callbacks/base.py +7 -7
- langchain/schema/callbacks/manager.py +19 -19
- langchain/schema/callbacks/tracers/base.py +1 -1
- langchain/schema/callbacks/tracers/evaluation.py +1 -1
- langchain/schema/callbacks/tracers/langchain.py +1 -1
- langchain/schema/callbacks/tracers/langchain_v1.py +1 -1
- langchain/schema/callbacks/tracers/log_stream.py +1 -1
- langchain/schema/callbacks/tracers/schemas.py +8 -8
- langchain/schema/callbacks/tracers/stdout.py +3 -3
- langchain/schema/document.py +1 -1
- langchain/schema/language_model.py +2 -2
- langchain/schema/messages.py +12 -12
- langchain/schema/output.py +3 -3
- langchain/schema/output_parser.py +3 -3
- langchain/schema/runnable/__init__.py +3 -3
- langchain/schema/runnable/base.py +9 -9
- langchain/schema/runnable/config.py +5 -5
- langchain/schema/runnable/configurable.py +1 -1
- langchain/schema/runnable/history.py +1 -1
- langchain/schema/runnable/passthrough.py +1 -1
- langchain/schema/runnable/utils.py +16 -16
- langchain/schema/vectorstore.py +1 -1
- langchain/smith/__init__.py +2 -1
- langchain/smith/evaluation/__init__.py +2 -2
- langchain/smith/evaluation/config.py +9 -23
- langchain/smith/evaluation/name_generation.py +3 -3
- langchain/smith/evaluation/progress.py +22 -4
- langchain/smith/evaluation/runner_utils.py +416 -247
- langchain/smith/evaluation/string_run_evaluator.py +102 -68
- langchain/storage/__init__.py +2 -2
- langchain/storage/_lc_store.py +4 -2
- langchain/storage/encoder_backed.py +7 -2
- langchain/storage/file_system.py +19 -16
- langchain/storage/in_memory.py +1 -1
- langchain/storage/upstash_redis.py +1 -1
- langchain/text_splitter.py +15 -15
- langchain/tools/__init__.py +28 -26
- langchain/tools/ainetwork/app.py +1 -1
- langchain/tools/ainetwork/base.py +1 -1
- langchain/tools/ainetwork/owner.py +1 -1
- langchain/tools/ainetwork/rule.py +1 -1
- langchain/tools/ainetwork/transfer.py +1 -1
- langchain/tools/ainetwork/value.py +1 -1
- langchain/tools/amadeus/closest_airport.py +1 -1
- langchain/tools/amadeus/flight_search.py +1 -1
- langchain/tools/azure_cognitive_services/__init__.py +1 -1
- langchain/tools/base.py +4 -4
- langchain/tools/bearly/tool.py +1 -1
- langchain/tools/bing_search/__init__.py +1 -1
- langchain/tools/bing_search/tool.py +1 -1
- langchain/tools/dataforseo_api_search/__init__.py +1 -1
- langchain/tools/dataforseo_api_search/tool.py +1 -1
- langchain/tools/ddg_search/tool.py +1 -1
- langchain/tools/e2b_data_analysis/tool.py +2 -2
- langchain/tools/edenai/__init__.py +1 -1
- langchain/tools/file_management/__init__.py +1 -1
- langchain/tools/file_management/copy.py +1 -1
- langchain/tools/file_management/delete.py +1 -1
- langchain/tools/gmail/__init__.py +2 -2
- langchain/tools/gmail/get_message.py +1 -1
- langchain/tools/gmail/search.py +1 -1
- langchain/tools/gmail/send_message.py +1 -1
- langchain/tools/google_finance/__init__.py +1 -1
- langchain/tools/google_finance/tool.py +1 -1
- langchain/tools/google_scholar/__init__.py +1 -1
- langchain/tools/google_scholar/tool.py +1 -1
- langchain/tools/google_search/__init__.py +1 -1
- langchain/tools/google_search/tool.py +1 -1
- langchain/tools/google_serper/__init__.py +1 -1
- langchain/tools/google_serper/tool.py +1 -1
- langchain/tools/google_trends/__init__.py +1 -1
- langchain/tools/google_trends/tool.py +1 -1
- langchain/tools/jira/tool.py +20 -1
- langchain/tools/json/tool.py +25 -3
- langchain/tools/memorize/tool.py +1 -1
- langchain/tools/multion/__init__.py +1 -1
- langchain/tools/multion/update_session.py +1 -1
- langchain/tools/office365/__init__.py +2 -2
- langchain/tools/office365/events_search.py +1 -1
- langchain/tools/office365/messages_search.py +1 -1
- langchain/tools/office365/send_event.py +1 -1
- langchain/tools/office365/send_message.py +1 -1
- langchain/tools/openapi/utils/api_models.py +6 -6
- langchain/tools/playwright/__init__.py +5 -5
- langchain/tools/playwright/click.py +1 -1
- langchain/tools/playwright/extract_hyperlinks.py +1 -1
- langchain/tools/playwright/get_elements.py +1 -1
- langchain/tools/playwright/navigate.py +1 -1
- langchain/tools/plugin.py +2 -2
- langchain/tools/powerbi/tool.py +1 -1
- langchain/tools/python/__init__.py +3 -2
- langchain/tools/reddit_search/tool.py +1 -1
- langchain/tools/render.py +2 -2
- langchain/tools/requests/tool.py +2 -2
- langchain/tools/searchapi/tool.py +1 -1
- langchain/tools/searx_search/tool.py +1 -1
- langchain/tools/slack/get_message.py +1 -1
- langchain/tools/spark_sql/tool.py +1 -1
- langchain/tools/sql_database/tool.py +1 -1
- langchain/tools/tavily_search/__init__.py +1 -1
- langchain/tools/tavily_search/tool.py +1 -1
- langchain/tools/zapier/__init__.py +1 -1
- langchain/tools/zapier/tool.py +24 -2
- langchain/utilities/__init__.py +4 -4
- langchain/utilities/arcee.py +4 -4
- langchain/utilities/clickup.py +4 -4
- langchain/utilities/dalle_image_generator.py +1 -1
- langchain/utilities/dataforseo_api_search.py +1 -1
- langchain/utilities/opaqueprompts.py +1 -1
- langchain/utilities/reddit_search.py +1 -1
- langchain/utilities/sql_database.py +1 -1
- langchain/utilities/tavily_search.py +1 -1
- langchain/utilities/vertexai.py +2 -2
- langchain/utils/__init__.py +1 -1
- langchain/utils/aiter.py +1 -1
- langchain/utils/html.py +3 -3
- langchain/utils/input.py +1 -1
- langchain/utils/iter.py +1 -1
- langchain/utils/json_schema.py +1 -3
- langchain/utils/strings.py +1 -1
- langchain/utils/utils.py +6 -6
- langchain/vectorstores/__init__.py +5 -5
- langchain/vectorstores/alibabacloud_opensearch.py +1 -1
- langchain/vectorstores/azure_cosmos_db.py +1 -1
- langchain/vectorstores/clickhouse.py +1 -1
- langchain/vectorstores/elastic_vector_search.py +1 -1
- langchain/vectorstores/elasticsearch.py +2 -2
- langchain/vectorstores/myscale.py +1 -1
- langchain/vectorstores/neo4j_vector.py +1 -1
- langchain/vectorstores/pgembedding.py +1 -1
- langchain/vectorstores/qdrant.py +1 -1
- langchain/vectorstores/redis/__init__.py +1 -1
- langchain/vectorstores/redis/base.py +1 -1
- langchain/vectorstores/redis/filters.py +4 -4
- langchain/vectorstores/redis/schema.py +6 -6
- langchain/vectorstores/sklearn.py +2 -2
- langchain/vectorstores/starrocks.py +1 -1
- langchain/vectorstores/utils.py +1 -1
- {langchain-0.3.26.dist-info → langchain-0.4.0.dev0.dist-info}/METADATA +4 -14
- {langchain-0.3.26.dist-info → langchain-0.4.0.dev0.dist-info}/RECORD +590 -591
- {langchain-0.3.26.dist-info → langchain-0.4.0.dev0.dist-info}/WHEEL +1 -1
- langchain/smith/evaluation/utils.py +0 -0
- {langchain-0.3.26.dist-info → langchain-0.4.0.dev0.dist-info}/entry_points.txt +0 -0
- {langchain-0.3.26.dist-info → langchain-0.4.0.dev0.dist-info}/licenses/LICENSE +0 -0
|
@@ -13,15 +13,15 @@ from langchain_core.tracers.schemas import (
|
|
|
13
13
|
)
|
|
14
14
|
|
|
15
15
|
__all__ = [
|
|
16
|
-
"RunTypeEnum",
|
|
17
|
-
"TracerSessionV1Base",
|
|
18
|
-
"TracerSessionV1Create",
|
|
19
|
-
"TracerSessionV1",
|
|
20
|
-
"TracerSessionBase",
|
|
21
|
-
"TracerSession",
|
|
22
16
|
"BaseRun",
|
|
23
|
-
"LLMRun",
|
|
24
17
|
"ChainRun",
|
|
25
|
-
"
|
|
18
|
+
"LLMRun",
|
|
26
19
|
"Run",
|
|
20
|
+
"RunTypeEnum",
|
|
21
|
+
"ToolRun",
|
|
22
|
+
"TracerSession",
|
|
23
|
+
"TracerSessionBase",
|
|
24
|
+
"TracerSessionV1",
|
|
25
|
+
"TracerSessionV1Base",
|
|
26
|
+
"TracerSessionV1Create",
|
|
27
27
|
]
|
langchain/schema/document.py
CHANGED
|
@@ -7,9 +7,9 @@ from langchain_core.language_models import (
|
|
|
7
7
|
from langchain_core.language_models.base import _get_token_ids_default_method
|
|
8
8
|
|
|
9
9
|
__all__ = [
|
|
10
|
-
"get_tokenizer",
|
|
11
10
|
"BaseLanguageModel",
|
|
12
|
-
"_get_token_ids_default_method",
|
|
13
11
|
"LanguageModelInput",
|
|
14
12
|
"LanguageModelOutput",
|
|
13
|
+
"_get_token_ids_default_method",
|
|
14
|
+
"get_tokenizer",
|
|
15
15
|
]
|
langchain/schema/messages.py
CHANGED
|
@@ -26,26 +26,26 @@ from langchain_core.messages import (
|
|
|
26
26
|
_message_to_dict = message_to_dict
|
|
27
27
|
|
|
28
28
|
__all__ = [
|
|
29
|
-
"
|
|
29
|
+
"AIMessage",
|
|
30
|
+
"AIMessageChunk",
|
|
31
|
+
"AnyMessage",
|
|
30
32
|
"BaseMessage",
|
|
31
|
-
"merge_content",
|
|
32
33
|
"BaseMessageChunk",
|
|
34
|
+
"ChatMessage",
|
|
35
|
+
"ChatMessageChunk",
|
|
36
|
+
"FunctionMessage",
|
|
37
|
+
"FunctionMessageChunk",
|
|
33
38
|
"HumanMessage",
|
|
34
39
|
"HumanMessageChunk",
|
|
35
|
-
"AIMessage",
|
|
36
|
-
"AIMessageChunk",
|
|
37
40
|
"SystemMessage",
|
|
38
41
|
"SystemMessageChunk",
|
|
39
|
-
"FunctionMessage",
|
|
40
|
-
"FunctionMessageChunk",
|
|
41
42
|
"ToolMessage",
|
|
42
43
|
"ToolMessageChunk",
|
|
43
|
-
"ChatMessage",
|
|
44
|
-
"ChatMessageChunk",
|
|
45
|
-
"messages_to_dict",
|
|
46
|
-
"messages_from_dict",
|
|
47
|
-
"_message_to_dict",
|
|
48
44
|
"_message_from_dict",
|
|
45
|
+
"_message_to_dict",
|
|
46
|
+
"get_buffer_string",
|
|
47
|
+
"merge_content",
|
|
49
48
|
"message_to_dict",
|
|
50
|
-
"
|
|
49
|
+
"messages_from_dict",
|
|
50
|
+
"messages_to_dict",
|
|
51
51
|
]
|
langchain/schema/output.py
CHANGED
|
@@ -9,11 +9,11 @@ from langchain_core.outputs import (
|
|
|
9
9
|
)
|
|
10
10
|
|
|
11
11
|
__all__ = [
|
|
12
|
-
"Generation",
|
|
13
|
-
"GenerationChunk",
|
|
14
12
|
"ChatGeneration",
|
|
15
13
|
"ChatGenerationChunk",
|
|
16
|
-
"RunInfo",
|
|
17
14
|
"ChatResult",
|
|
15
|
+
"Generation",
|
|
16
|
+
"GenerationChunk",
|
|
18
17
|
"LLMResult",
|
|
18
|
+
"RunInfo",
|
|
19
19
|
]
|
|
@@ -13,13 +13,13 @@ from langchain_core.output_parsers.base import T
|
|
|
13
13
|
NoOpOutputParser = StrOutputParser
|
|
14
14
|
|
|
15
15
|
__all__ = [
|
|
16
|
-
"
|
|
16
|
+
"BaseCumulativeTransformOutputParser",
|
|
17
17
|
"BaseGenerationOutputParser",
|
|
18
|
+
"BaseLLMOutputParser",
|
|
18
19
|
"BaseOutputParser",
|
|
19
20
|
"BaseTransformOutputParser",
|
|
20
|
-
"BaseCumulativeTransformOutputParser",
|
|
21
21
|
"NoOpOutputParser",
|
|
22
|
-
"StrOutputParser",
|
|
23
22
|
"OutputParserException",
|
|
23
|
+
"StrOutputParser",
|
|
24
24
|
"T",
|
|
25
25
|
]
|
|
@@ -38,13 +38,11 @@ from langchain_core.runnables.utils import (
|
|
|
38
38
|
|
|
39
39
|
__all__ = [
|
|
40
40
|
"ConfigurableField",
|
|
41
|
-
"ConfigurableFieldSingleOption",
|
|
42
41
|
"ConfigurableFieldMultiOption",
|
|
43
|
-
"
|
|
42
|
+
"ConfigurableFieldSingleOption",
|
|
44
43
|
"RouterInput",
|
|
45
44
|
"RouterRunnable",
|
|
46
45
|
"Runnable",
|
|
47
|
-
"RunnableSerializable",
|
|
48
46
|
"RunnableBinding",
|
|
49
47
|
"RunnableBranch",
|
|
50
48
|
"RunnableConfig",
|
|
@@ -54,5 +52,7 @@ __all__ = [
|
|
|
54
52
|
"RunnableParallel",
|
|
55
53
|
"RunnablePassthrough",
|
|
56
54
|
"RunnableSequence",
|
|
55
|
+
"RunnableSerializable",
|
|
57
56
|
"RunnableWithFallbacks",
|
|
57
|
+
"patch_config",
|
|
58
58
|
]
|
|
@@ -20,19 +20,19 @@ RunnableMap = RunnableParallel
|
|
|
20
20
|
|
|
21
21
|
__all__ = [
|
|
22
22
|
"Input",
|
|
23
|
-
"Output",
|
|
24
|
-
"RunnableLike",
|
|
25
23
|
"Other",
|
|
24
|
+
"Output",
|
|
26
25
|
"Runnable",
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
26
|
+
"RunnableBinding",
|
|
27
|
+
"RunnableBindingBase",
|
|
28
|
+
"RunnableEach",
|
|
29
|
+
"RunnableEachBase",
|
|
30
30
|
"RunnableGenerator",
|
|
31
31
|
"RunnableLambda",
|
|
32
|
-
"
|
|
33
|
-
"RunnableEach",
|
|
34
|
-
"RunnableBindingBase",
|
|
35
|
-
"RunnableBinding",
|
|
32
|
+
"RunnableLike",
|
|
36
33
|
"RunnableMap",
|
|
34
|
+
"RunnableParallel",
|
|
35
|
+
"RunnableSequence",
|
|
36
|
+
"RunnableSerializable",
|
|
37
37
|
"coerce_to_runnable",
|
|
38
38
|
]
|
|
@@ -15,13 +15,13 @@ from langchain_core.runnables.config import (
|
|
|
15
15
|
__all__ = [
|
|
16
16
|
"EmptyDict",
|
|
17
17
|
"RunnableConfig",
|
|
18
|
-
"ensure_config",
|
|
19
|
-
"get_config_list",
|
|
20
|
-
"patch_config",
|
|
21
|
-
"merge_configs",
|
|
22
18
|
"acall_func_with_variable_args",
|
|
23
19
|
"call_func_with_variable_args",
|
|
24
|
-
"
|
|
20
|
+
"ensure_config",
|
|
25
21
|
"get_async_callback_manager_for_config",
|
|
22
|
+
"get_callback_manager_for_config",
|
|
23
|
+
"get_config_list",
|
|
26
24
|
"get_executor_for_config",
|
|
25
|
+
"merge_configs",
|
|
26
|
+
"patch_config",
|
|
27
27
|
]
|
|
@@ -25,27 +25,27 @@ from langchain_core.runnables.utils import (
|
|
|
25
25
|
)
|
|
26
26
|
|
|
27
27
|
__all__ = [
|
|
28
|
-
"
|
|
29
|
-
"accepts_config",
|
|
30
|
-
"IsLocalDict",
|
|
31
|
-
"IsFunctionArgDict",
|
|
32
|
-
"GetLambdaSource",
|
|
33
|
-
"get_function_first_arg_dict_keys",
|
|
34
|
-
"get_lambda_source",
|
|
35
|
-
"indent_lines_after_first",
|
|
28
|
+
"Addable",
|
|
36
29
|
"AddableDict",
|
|
37
|
-
"
|
|
38
|
-
"add",
|
|
30
|
+
"AnyConfigurableField",
|
|
39
31
|
"ConfigurableField",
|
|
40
|
-
"ConfigurableFieldSingleOption",
|
|
41
32
|
"ConfigurableFieldMultiOption",
|
|
33
|
+
"ConfigurableFieldSingleOption",
|
|
42
34
|
"ConfigurableFieldSpec",
|
|
43
|
-
"
|
|
35
|
+
"GetLambdaSource",
|
|
36
|
+
"Input",
|
|
37
|
+
"IsFunctionArgDict",
|
|
38
|
+
"IsLocalDict",
|
|
39
|
+
"Output",
|
|
40
|
+
"SupportsAdd",
|
|
44
41
|
"aadd",
|
|
42
|
+
"accepts_config",
|
|
43
|
+
"accepts_run_manager",
|
|
44
|
+
"add",
|
|
45
45
|
"gated_coro",
|
|
46
46
|
"gather_with_concurrency",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
47
|
+
"get_function_first_arg_dict_keys",
|
|
48
|
+
"get_lambda_source",
|
|
49
|
+
"get_unique_config_specs",
|
|
50
|
+
"indent_lines_after_first",
|
|
51
51
|
]
|
langchain/schema/vectorstore.py
CHANGED
langchain/smith/__init__.py
CHANGED
|
@@ -87,6 +87,7 @@ or LangSmith's `RunEvaluator` classes.
|
|
|
87
87
|
- :func:`arun_on_dataset <langchain.smith.evaluation.runner_utils.arun_on_dataset>`: Asynchronous function to evaluate a chain, agent, or other LangChain component over a dataset.
|
|
88
88
|
- :func:`run_on_dataset <langchain.smith.evaluation.runner_utils.run_on_dataset>`: Function to evaluate a chain, agent, or other LangChain component over a dataset.
|
|
89
89
|
- :class:`RunEvalConfig <langchain.smith.evaluation.config.RunEvalConfig>`: Class representing the configuration for running evaluation. You can select evaluators by :class:`EvaluatorType <langchain.evaluation.schema.EvaluatorType>` or config, or you can pass in `custom_evaluators`
|
|
90
|
+
|
|
90
91
|
""" # noqa: E501
|
|
91
92
|
|
|
92
93
|
from langchain.smith.evaluation import (
|
|
@@ -96,7 +97,7 @@ from langchain.smith.evaluation import (
|
|
|
96
97
|
)
|
|
97
98
|
|
|
98
99
|
__all__ = [
|
|
100
|
+
"RunEvalConfig",
|
|
99
101
|
"arun_on_dataset",
|
|
100
102
|
"run_on_dataset",
|
|
101
|
-
"RunEvalConfig",
|
|
102
103
|
]
|
|
@@ -61,8 +61,8 @@ from langchain.smith.evaluation.string_run_evaluator import StringRunEvaluatorCh
|
|
|
61
61
|
|
|
62
62
|
__all__ = [
|
|
63
63
|
"InputFormatError",
|
|
64
|
+
"RunEvalConfig",
|
|
65
|
+
"StringRunEvaluatorChain",
|
|
64
66
|
"arun_on_dataset",
|
|
65
67
|
"run_on_dataset",
|
|
66
|
-
"StringRunEvaluatorChain",
|
|
67
|
-
"RunEvalConfig",
|
|
68
68
|
]
|
|
@@ -10,6 +10,7 @@ from langsmith import RunEvaluator
|
|
|
10
10
|
from langsmith.evaluation.evaluator import EvaluationResult, EvaluationResults
|
|
11
11
|
from langsmith.schemas import Example, Run
|
|
12
12
|
from pydantic import BaseModel, ConfigDict, Field
|
|
13
|
+
from typing_extensions import override
|
|
13
14
|
|
|
14
15
|
from langchain.evaluation.criteria.eval_chain import CRITERIA_TYPE
|
|
15
16
|
from langchain.evaluation.embedding_distance.base import (
|
|
@@ -21,7 +22,8 @@ from langchain.evaluation.string_distance.base import (
|
|
|
21
22
|
)
|
|
22
23
|
|
|
23
24
|
RUN_EVALUATOR_LIKE = Callable[
|
|
24
|
-
[Run, Optional[Example]],
|
|
25
|
+
[Run, Optional[Example]],
|
|
26
|
+
Union[EvaluationResult, EvaluationResults, dict],
|
|
25
27
|
]
|
|
26
28
|
BATCH_EVALUATOR_LIKE = Callable[
|
|
27
29
|
[Sequence[Run], Optional[Sequence[Example]]],
|
|
@@ -57,9 +59,7 @@ class EvalConfig(BaseModel):
|
|
|
57
59
|
"""
|
|
58
60
|
kwargs = {}
|
|
59
61
|
for field, val in self:
|
|
60
|
-
if field == "evaluator_type":
|
|
61
|
-
continue
|
|
62
|
-
elif val is None:
|
|
62
|
+
if field == "evaluator_type" or val is None:
|
|
63
63
|
continue
|
|
64
64
|
kwargs[field] = val
|
|
65
65
|
return kwargs
|
|
@@ -79,6 +79,7 @@ class SingleKeyEvalConfig(EvalConfig):
|
|
|
79
79
|
"""The key from the traced run's inputs dictionary to use to represent the
|
|
80
80
|
input. If not provided, it will be inferred automatically."""
|
|
81
81
|
|
|
82
|
+
@override
|
|
82
83
|
def get_kwargs(self) -> dict[str, Any]:
|
|
83
84
|
kwargs = super().get_kwargs()
|
|
84
85
|
# Filer out the keys that are not needed for the evaluator.
|
|
@@ -133,7 +134,7 @@ class RunEvalConfig(BaseModel):
|
|
|
133
134
|
:class:`EvaluatorType <langchain.evaluation.schema.EvaluatorType>`, such
|
|
134
135
|
as `EvaluatorType.QA`, the evaluator type string ("qa"), or a configuration for a
|
|
135
136
|
given evaluator
|
|
136
|
-
(e.g.,
|
|
137
|
+
(e.g.,
|
|
137
138
|
:class:`RunEvalConfig.QA <langchain.smith.evaluation.config.RunEvalConfig.QA>`)."""
|
|
138
139
|
custom_evaluators: Optional[list[CUSTOM_EVALUATOR_TYPE]] = None
|
|
139
140
|
"""Custom evaluators to apply to the dataset run."""
|
|
@@ -177,11 +178,6 @@ class RunEvalConfig(BaseModel):
|
|
|
177
178
|
llm: Optional[BaseLanguageModel] = None
|
|
178
179
|
evaluator_type: EvaluatorType = EvaluatorType.CRITERIA
|
|
179
180
|
|
|
180
|
-
def __init__(
|
|
181
|
-
self, criteria: Optional[CRITERIA_TYPE] = None, **kwargs: Any
|
|
182
|
-
) -> None:
|
|
183
|
-
super().__init__(criteria=criteria, **kwargs) # type: ignore[call-arg]
|
|
184
|
-
|
|
185
181
|
class LabeledCriteria(SingleKeyEvalConfig):
|
|
186
182
|
"""Configuration for a labeled (with references) criteria evaluator.
|
|
187
183
|
|
|
@@ -197,11 +193,6 @@ class RunEvalConfig(BaseModel):
|
|
|
197
193
|
llm: Optional[BaseLanguageModel] = None
|
|
198
194
|
evaluator_type: EvaluatorType = EvaluatorType.LABELED_CRITERIA
|
|
199
195
|
|
|
200
|
-
def __init__(
|
|
201
|
-
self, criteria: Optional[CRITERIA_TYPE] = None, **kwargs: Any
|
|
202
|
-
) -> None:
|
|
203
|
-
super().__init__(criteria=criteria, **kwargs) # type: ignore[call-arg]
|
|
204
|
-
|
|
205
196
|
class EmbeddingDistance(SingleKeyEvalConfig):
|
|
206
197
|
"""Configuration for an embedding distance evaluator.
|
|
207
198
|
|
|
@@ -342,6 +333,7 @@ class RunEvalConfig(BaseModel):
|
|
|
342
333
|
|
|
343
334
|
class ScoreString(SingleKeyEvalConfig):
|
|
344
335
|
"""Configuration for a score string evaluator.
|
|
336
|
+
|
|
345
337
|
This is like the criteria evaluator but it is configured by
|
|
346
338
|
default to return a score on the scale from 1-10.
|
|
347
339
|
|
|
@@ -367,13 +359,7 @@ class RunEvalConfig(BaseModel):
|
|
|
367
359
|
normalize_by: Optional[float] = None
|
|
368
360
|
prompt: Optional[BasePromptTemplate] = None
|
|
369
361
|
|
|
370
|
-
def __init__(
|
|
371
|
-
self,
|
|
372
|
-
criteria: Optional[CRITERIA_TYPE] = None,
|
|
373
|
-
normalize_by: Optional[float] = None,
|
|
374
|
-
**kwargs: Any,
|
|
375
|
-
) -> None:
|
|
376
|
-
super().__init__(criteria=criteria, normalize_by=normalize_by, **kwargs) # type: ignore[call-arg]
|
|
377
|
-
|
|
378
362
|
class LabeledScoreString(ScoreString):
|
|
363
|
+
""" "Configuration for a labeled score string evaluator."""
|
|
364
|
+
|
|
379
365
|
evaluator_type: EvaluatorType = EvaluatorType.LABELED_SCORE_STRING
|
|
@@ -721,7 +721,7 @@ nouns = [
|
|
|
721
721
|
|
|
722
722
|
def random_name() -> str:
|
|
723
723
|
"""Generate a random name."""
|
|
724
|
-
adjective = random.choice(adjectives)
|
|
725
|
-
noun = random.choice(nouns)
|
|
726
|
-
number = random.randint(1, 100)
|
|
724
|
+
adjective = random.choice(adjectives) # noqa: S311
|
|
725
|
+
noun = random.choice(nouns) # noqa: S311
|
|
726
|
+
number = random.randint(1, 100) # noqa: S311
|
|
727
727
|
return f"{adjective}-{noun}-{number}"
|
|
@@ -2,26 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
import threading
|
|
4
4
|
from collections.abc import Sequence
|
|
5
|
-
from typing import Any, Optional
|
|
5
|
+
from typing import Any, Optional, Union
|
|
6
6
|
from uuid import UUID
|
|
7
7
|
|
|
8
8
|
from langchain_core.callbacks import base as base_callbacks
|
|
9
9
|
from langchain_core.documents import Document
|
|
10
10
|
from langchain_core.outputs import LLMResult
|
|
11
|
+
from langchain_core.v1.messages import AIMessage
|
|
12
|
+
from typing_extensions import override
|
|
11
13
|
|
|
12
14
|
|
|
13
15
|
class ProgressBarCallback(base_callbacks.BaseCallbackHandler):
|
|
14
16
|
"""A simple progress bar for the console."""
|
|
15
17
|
|
|
16
|
-
def __init__(
|
|
18
|
+
def __init__(
|
|
19
|
+
self,
|
|
20
|
+
total: int,
|
|
21
|
+
ncols: int = 50,
|
|
22
|
+
end_with: str = "\n",
|
|
23
|
+
):
|
|
17
24
|
"""Initialize the progress bar.
|
|
18
25
|
|
|
19
26
|
Args:
|
|
20
27
|
total: int, the total number of items to be processed.
|
|
21
28
|
ncols: int, the character width of the progress bar.
|
|
29
|
+
end_with: str, last string to print after progress bar reaches end.
|
|
22
30
|
"""
|
|
23
31
|
self.total = total
|
|
24
32
|
self.ncols = ncols
|
|
33
|
+
self.end_with = end_with
|
|
25
34
|
self.counter = 0
|
|
26
35
|
self.lock = threading.Lock()
|
|
27
36
|
self._print_bar()
|
|
@@ -37,8 +46,10 @@ class ProgressBarCallback(base_callbacks.BaseCallbackHandler):
|
|
|
37
46
|
progress = self.counter / self.total
|
|
38
47
|
arrow = "-" * int(round(progress * self.ncols) - 1) + ">"
|
|
39
48
|
spaces = " " * (self.ncols - len(arrow))
|
|
40
|
-
|
|
49
|
+
end = "" if self.counter < self.total else self.end_with
|
|
50
|
+
print(f"\r[{arrow + spaces}] {self.counter}/{self.total}", end=end) # noqa: T201
|
|
41
51
|
|
|
52
|
+
@override
|
|
42
53
|
def on_chain_error(
|
|
43
54
|
self,
|
|
44
55
|
error: BaseException,
|
|
@@ -50,6 +61,7 @@ class ProgressBarCallback(base_callbacks.BaseCallbackHandler):
|
|
|
50
61
|
if parent_run_id is None:
|
|
51
62
|
self.increment()
|
|
52
63
|
|
|
64
|
+
@override
|
|
53
65
|
def on_chain_end(
|
|
54
66
|
self,
|
|
55
67
|
outputs: dict[str, Any],
|
|
@@ -61,6 +73,7 @@ class ProgressBarCallback(base_callbacks.BaseCallbackHandler):
|
|
|
61
73
|
if parent_run_id is None:
|
|
62
74
|
self.increment()
|
|
63
75
|
|
|
76
|
+
@override
|
|
64
77
|
def on_retriever_error(
|
|
65
78
|
self,
|
|
66
79
|
error: BaseException,
|
|
@@ -72,6 +85,7 @@ class ProgressBarCallback(base_callbacks.BaseCallbackHandler):
|
|
|
72
85
|
if parent_run_id is None:
|
|
73
86
|
self.increment()
|
|
74
87
|
|
|
88
|
+
@override
|
|
75
89
|
def on_retriever_end(
|
|
76
90
|
self,
|
|
77
91
|
documents: Sequence[Document],
|
|
@@ -83,6 +97,7 @@ class ProgressBarCallback(base_callbacks.BaseCallbackHandler):
|
|
|
83
97
|
if parent_run_id is None:
|
|
84
98
|
self.increment()
|
|
85
99
|
|
|
100
|
+
@override
|
|
86
101
|
def on_llm_error(
|
|
87
102
|
self,
|
|
88
103
|
error: BaseException,
|
|
@@ -94,9 +109,10 @@ class ProgressBarCallback(base_callbacks.BaseCallbackHandler):
|
|
|
94
109
|
if parent_run_id is None:
|
|
95
110
|
self.increment()
|
|
96
111
|
|
|
112
|
+
@override
|
|
97
113
|
def on_llm_end(
|
|
98
114
|
self,
|
|
99
|
-
response: LLMResult,
|
|
115
|
+
response: Union[LLMResult, AIMessage],
|
|
100
116
|
*,
|
|
101
117
|
run_id: UUID,
|
|
102
118
|
parent_run_id: Optional[UUID] = None,
|
|
@@ -105,6 +121,7 @@ class ProgressBarCallback(base_callbacks.BaseCallbackHandler):
|
|
|
105
121
|
if parent_run_id is None:
|
|
106
122
|
self.increment()
|
|
107
123
|
|
|
124
|
+
@override
|
|
108
125
|
def on_tool_error(
|
|
109
126
|
self,
|
|
110
127
|
error: BaseException,
|
|
@@ -116,6 +133,7 @@ class ProgressBarCallback(base_callbacks.BaseCallbackHandler):
|
|
|
116
133
|
if parent_run_id is None:
|
|
117
134
|
self.increment()
|
|
118
135
|
|
|
136
|
+
@override
|
|
119
137
|
def on_tool_end(
|
|
120
138
|
self,
|
|
121
139
|
output: str,
|