gitextract_818zmpj_/ ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── ci.yaml │ ├── examples.yaml │ └── publish-docs.yaml ├── .gitignore ├── .golangci-exp.yaml ├── .golangci.yaml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── FIXES_SUMMARY.md ├── LICENSE ├── Makefile ├── README.md ├── agents/ │ ├── agents.go │ ├── conversational.go │ ├── conversational_test.go │ ├── doc.go │ ├── errors.go │ ├── executor.go │ ├── executor_test.go │ ├── initialize.go │ ├── markl_test.go │ ├── mrkl.go │ ├── mrkl_prompt.go │ ├── ollama_agent_guide.md │ ├── openai_functions_agent.go │ ├── openai_functions_agent_test.go │ ├── options.go │ ├── prompts/ │ │ ├── conversational_format_instructions.txt │ │ ├── conversational_prefix.txt │ │ └── conversational_suffix.txt │ └── testdata/ │ ├── TestConversationalWithMemory.httprr │ ├── TestExecutorWithMRKLAgent.httprr │ ├── TestExecutorWithOpenAIFunctionAgent.httprr │ ├── TestOpenAIFunctionsAgentComplexCalculation.httprr │ └── TestOpenAIFunctionsAgentWithHTTPRR.httprr ├── callbacks/ │ ├── agent_final_stream.go │ ├── agent_final_stream_test.go │ ├── callbacks.go │ ├── callbacks_unit_test.go │ ├── combining.go │ ├── doc.go │ ├── log.go │ ├── log_stream.go │ └── simple.go ├── chains/ │ ├── api.go │ ├── api_test.go │ ├── chains.go │ ├── chains_test.go │ ├── chains_unit_test.go │ ├── constitution/ │ │ ├── constitutional.go │ │ ├── constitutional_test.go │ │ ├── principles.go │ │ ├── prompts.go │ │ └── testdata/ │ │ └── TestConstitutionalChain.httprr │ ├── constitutional.go │ ├── constitutional_test.go │ ├── conversation.go │ ├── conversation_test.go │ ├── conversational_retrieval_qa.go │ ├── conversational_retrieval_qa_test.go │ ├── doc.go │ ├── errors.go │ ├── llm.go │ ├── llm_azure_test.go │ ├── llm_math.go │ ├── llm_math_test.go │ ├── llm_test.go │ ├── map_reduce.go │ ├── map_reduce_test.go │ ├── map_rerank_documents.go │ ├── map_rerank_documents_test.go │ ├── options.go │ ├── prompt_selector.go │ ├── prompts/ │ │ ├── llm_api_url.txt │ │ ├── llm_api_url_response.txt │ │ └── llm_math.txt │ ├── question_answering.go │ ├── question_answering_test.go │ ├── refine_documents.go │ ├── retrieval_qa.go │ ├── retrieval_qa_test.go │ ├── sequential.go │ ├── sequential_test.go │ ├── sql_database.go │ ├── sql_database_test.go │ ├── stuff_documents.go │ ├── stuff_documents_test.go │ ├── summarization.go │ ├── summarization_test.go │ ├── testdata/ │ │ ├── TestConstitutionalChainBasic.httprr │ │ ├── TestConversation.httprr │ │ ├── TestConversationWithChatLLM.httprr │ │ ├── TestConversationWithZepMemory.httprr │ │ ├── TestLLMChain.httprr │ │ ├── TestLLMChainAzure.httprr │ │ ├── TestLLMChainWithGoogleAI.httprr │ │ ├── TestLLMMath.httprr │ │ ├── TestMapReduceQA.httprr │ │ ├── TestMapReduceSummarization.httprr │ │ ├── TestRefineQA.httprr │ │ ├── TestRefineSummarization.httprr │ │ ├── TestRetrievalQA.httprr │ │ ├── TestRetrievalQAFromLLM.httprr │ │ ├── TestSQLDatabaseChain_Call.httprr │ │ ├── TestStuffDocuments.httprr │ │ ├── TestStuffSummarization.httprr │ │ └── mouse_story.txt │ ├── transform.go │ └── transform_test.go ├── doc.go ├── docs/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .vale.ini │ ├── Makefile │ ├── README.md │ ├── babel.config.js │ ├── code-block-loader.js │ ├── docs/ │ │ ├── concepts/ │ │ │ ├── architecture.md │ │ │ └── index.md │ │ ├── contributing/ │ │ │ ├── documentation.md │ │ │ └── index.md │ │ ├── getting-started/ │ │ │ ├── guide-chat.mdx │ │ │ ├── guide-mistral.mdx │ │ │ ├── guide-ollama.mdx │ │ │ └── guide-openai.mdx │ │ ├── how-to/ │ │ │ ├── configure-llm-providers.md │ │ │ └── index.md │ │ ├── index.md │ │ ├── modules/ │ │ │ ├── agents/ │ │ │ │ ├── agents/ │ │ │ │ │ └── index.mdx │ │ │ │ ├── executor/ │ │ │ │ │ ├── getting-started.mdx │ │ │ │ │ └── index.mdx │ │ │ │ ├── index.mdx │ │ │ │ └── tools/ │ │ │ │ └── index.mdx │ │ │ ├── chains/ │ │ │ │ ├── index.mdx │ │ │ │ └── llm_chain.mdx │ │ │ ├── data_connection/ │ │ │ │ ├── document_loaders/ │ │ │ │ │ └── index.mdx │ │ │ │ ├── index.mdx │ │ │ │ ├── retrievers/ │ │ │ │ │ └── index.mdx │ │ │ │ ├── text_splitters/ │ │ │ │ │ ├── examples/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ └── index.mdx │ │ │ │ └── vector_stores/ │ │ │ │ ├── index.mdx │ │ │ │ └── pgvector.mdx │ │ │ ├── memory/ │ │ │ │ ├── examples/ │ │ │ │ │ └── index.mdx │ │ │ │ └── index.mdx │ │ │ └── model_io/ │ │ │ ├── index.mdx │ │ │ ├── models/ │ │ │ │ ├── chat/ │ │ │ │ │ ├── index.mdx │ │ │ │ │ └── integrations.mdx │ │ │ │ ├── embeddings/ │ │ │ │ │ ├── index.mdx │ │ │ │ │ └── integrations.mdx │ │ │ │ ├── index.mdx │ │ │ │ └── llms/ │ │ │ │ ├── Integrations/ │ │ │ │ │ ├── fake.mdx │ │ │ │ │ ├── groq.mdx │ │ │ │ │ ├── huggingface.mdx │ │ │ │ │ ├── llamafile.mdx │ │ │ │ │ ├── local.mdx │ │ │ │ │ ├── mistral.mdx │ │ │ │ │ ├── openai.mdx │ │ │ │ │ ├── vertexai.mdx │ │ │ │ │ └── watsonx.mdx │ │ │ │ └── index.mdx │ │ │ ├── output_parsers/ │ │ │ │ └── index.mdx │ │ │ └── prompts/ │ │ │ ├── index.mdx │ │ │ └── prompt_templates/ │ │ │ ├── index.mdx │ │ │ └── partial_values.mdx │ │ └── tutorials/ │ │ ├── basic-chat-app.md │ │ ├── code-reviewer.md │ │ ├── index.md │ │ ├── log-analyzer.md │ │ └── smart-documentation.md │ ├── docusaurus.config.js │ ├── go.mod │ ├── go.sum │ ├── package.json │ ├── parity_matrix.md │ ├── search-indexer.go │ ├── sidebars.js │ ├── src/ │ │ ├── css/ │ │ │ └── custom.css │ │ ├── pages/ │ │ │ └── index.js │ │ └── theme/ │ │ ├── CodeBlock/ │ │ │ └── index.js │ │ └── SearchBar/ │ │ ├── SearchBar.css │ │ └── index.js │ ├── static/ │ │ └── .nojekyll │ └── styles/ │ └── langchaingo/ │ ├── ActiveVoice.yml │ ├── Clarity.yml │ ├── CodeBlockLanguage.yml │ ├── ConsistentLists.yml │ ├── DirectLanguage.yml │ ├── ErrorHandling.yml │ ├── HardcodedSecrets.yml │ ├── Headers.yml │ ├── IncompleteExamples.yml │ ├── NoEmojis.yml │ ├── PresentTense.yml │ ├── Pronouns.yml │ ├── Readability.yml │ ├── Spelling.yml │ ├── Terminology.yml │ └── ignore.txt ├── documentloaders/ │ ├── assemblyai.go │ ├── assemblyai_test.go │ ├── csv.go │ ├── csv_test.go │ ├── directory.go │ ├── directory_test.go │ ├── doc.go │ ├── documentloaders.go │ ├── html.go │ ├── html_test.go │ ├── notion.go │ ├── notion_test.go │ ├── pdf.go │ ├── pdf_test.go │ ├── testdata/ │ │ ├── depth/ │ │ │ └── test2.md │ │ ├── test.csv │ │ ├── test.html │ │ └── test.txt │ ├── text.go │ └── text_test.go ├── embeddings/ │ ├── bedrock/ │ │ ├── bedrock.go │ │ ├── bedrock_test.go │ │ ├── bedrock_unit_test.go │ │ ├── options.go │ │ ├── provider_amazon.go │ │ └── provider_cohere.go │ ├── cybertron/ │ │ ├── cybertron.go │ │ ├── cybertron_test.go │ │ ├── cybertron_unit_test.go │ │ └── options.go │ ├── doc.go │ ├── embedding.go │ ├── embedding_test.go │ ├── example_test.go │ ├── huggingface/ │ │ ├── huggingface.go │ │ ├── huggingface_test.go │ │ ├── huggingface_unit_test.go │ │ └── options.go │ ├── jina/ │ │ ├── jina.go │ │ ├── jina_test.go │ │ ├── jina_unit_test.go │ │ └── options.go │ ├── openai_test.go │ ├── options.go │ ├── testdata/ │ │ ├── TestOpenaiEmbeddings.httprr │ │ ├── TestOpenaiEmbeddingsQueryVsDocuments.httprr │ │ ├── TestOpenaiEmbeddingsWithAzureAPI.httprr │ │ ├── TestOpenaiEmbeddingsWithOptions.httprr │ │ ├── TestVertexAIPaLMEmbeddings.httprr │ │ └── TestVertexAIPaLMEmbeddingsWithOptions.httprr │ ├── vector_math.go │ ├── vector_math_test.go │ └── voyageai/ │ ├── options.go │ ├── voyageai.go │ ├── voyageai_test.go │ └── voyageai_unit_test.go ├── examples/ │ ├── .gitattributes │ ├── .update-all-to-latest.sh │ ├── Makefile │ ├── README.md │ ├── anthropic-completion-example/ │ │ ├── README.md │ │ ├── anthropic_completion_example.go │ │ ├── go.mod │ │ └── go.sum │ ├── anthropic-extended-capabilities/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ ├── anthropic-interleaved-thinking/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ ├── anthropic-tool-call-example/ │ │ ├── README.md │ │ ├── anthropic-tool-call-example.go │ │ ├── go.mod │ │ └── go.sum │ ├── anthropic-vision-example/ │ │ ├── README.md │ │ ├── anthropic_vision_example.go │ │ ├── go.mod │ │ └── go.sum │ ├── bedrock-claude3-vision-example/ │ │ ├── README.md │ │ ├── becrock_claude3_vision_example.go │ │ ├── go.mod │ │ └── go.sum │ ├── bedrock-provider-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ ├── caching-llm-example/ │ │ ├── README.md │ │ ├── caching_llm_example.go │ │ ├── go.mod │ │ └── go.sum │ ├── chains-conversation-memory-sqlite/ │ │ ├── README.md │ │ ├── chains_conversation_memory_sqlite.go │ │ ├── go.mod │ │ └── go.sum │ ├── chroma-vectorstore-example/ │ │ ├── README.md │ │ ├── chroma_vectorstore_example.go │ │ ├── go.mod │ │ └── go.sum │ ├── cohere-llm-example/ │ │ ├── README.md │ │ ├── cohere_completion_example.go │ │ ├── go.mod │ │ └── go.sum │ ├── cybertron-embedding-example/ │ │ ├── README.md │ │ ├── cybertron-embedding.go │ │ ├── go.mod │ │ └── go.sum │ ├── deepseek-completion-example/ │ │ ├── deepseek-completion-example.go │ │ ├── go.mod │ │ └── go.sum │ ├── document-qa-example/ │ │ ├── README.md │ │ ├── document_qa.go │ │ ├── go.mod │ │ └── go.sum │ ├── ernie-chat-example/ │ │ ├── README.md │ │ ├── ernie_chat_example.go │ │ ├── go.mod │ │ └── go.sum │ ├── ernie-completion-example/ │ │ ├── README.md │ │ ├── ernie_completion_example.go │ │ ├── go.mod │ │ └── go.sum │ ├── ernie-function-call-example/ │ │ ├── README.md │ │ ├── ernie_function_call_example.go │ │ ├── go.mod │ │ └── go.sum │ ├── google-alloydb-chat-message-history-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── google_alloydb_chat_message_history_example.go │ ├── google-alloydb-vectorstore-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── google_alloydb_vectorstore_example.go │ ├── google-cloudsql-chat-message-history-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── google_cloudsql_chat_message_history_example.go │ ├── google-cloudsql-vectorstore-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── google_cloudsql_vectorstore_example.go │ ├── googleai-completion-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── googleai-completion-example.go │ ├── googleai-reasoning-caching/ │ │ └── main.go │ ├── googleai-streaming-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── googleai-stremaing-example.go │ ├── googleai-tool-call-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── googleai-tool-call-example.go │ ├── groq-completion-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── groq_completion_example.go │ ├── huggingface-llm-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── huggingface_example.go │ ├── huggingface-milvus-vectorstore-example/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── Taskfile.yml │ │ ├── docker-compose.yml │ │ ├── go.mod │ │ ├── go.sum │ │ └── milvus_vectorstore_example.go │ ├── json-mode-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── json_mode_example.go │ ├── llamafile-completion-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── llamafile_completion_example.go │ ├── llm-chain-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── llm_chain.go │ ├── llmmath-chain-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── llm_math_chain.go │ ├── llmsummarization-chain-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── llm_summarization_example.go │ ├── local-llm-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── local_llm_example.go │ ├── maritaca-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── maritaca-chat-example.go │ ├── mistral-completion-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── mistral_completion_example.go │ ├── mistral-embedding-example/ │ │ ├── go.mod │ │ ├── go.sum │ │ └── mistral-embedding-example.go │ ├── mistral-summarization-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── mistral_summarization_example.go │ ├── mongovector-vectorstore-example/ │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── go.mod │ │ ├── go.sum │ │ └── mongovector_vectorstore_example.go │ ├── mrkl-agent-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── mrkl_agent.go │ ├── nvidia-chat-completion/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── nvidia_chat_completion_example.go │ ├── ollama-chat-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── ollama_chat_example.go │ ├── ollama-chroma-vectorstore-example/ │ │ ├── README.md │ │ ├── chroma_vectorstore_example.go │ │ ├── go.mod │ │ └── go.sum │ ├── ollama-completion-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── ollama_completion_example.go │ ├── ollama-functions-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── ollama_functions_example.go │ ├── ollama-reasoning-caching/ │ │ └── main.go │ ├── ollama-stream-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── ollama_stream_example.go │ ├── openai-chat-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ ├── openai_chat_example.go │ │ └── useragent-comparison.md │ ├── openai-completion-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── openai_completion_example.go │ ├── openai-completion-example-with-http-debugging/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── openai_completion_example.go │ ├── openai-embeddings-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── openai-embeddings-example.go │ ├── openai-function-call-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── openai_function_call_example.go │ ├── openai-function-call-streaming-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── openai_function_call_example.go │ ├── openai-gpt4-turbo-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── openai_gpt4_turbo.go │ ├── openai-gpt4o-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ ├── index.html │ │ └── openai_gpt4o_example.go │ ├── openai-gpt4o-mutil-content/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── openai-gpt4o-mutil-content.go │ ├── openai-jsonformat-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── openai-jsonformat.go │ ├── openai-o1-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── openai_o1_chat_example.go │ ├── openai-readme/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── openai-readme.go │ ├── openrouter-llm-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── openrouter_llm_example.go │ ├── perplexity-completion-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── perplexity_completion_example.go │ ├── pgvector-vectorstore-example/ │ │ ├── README.md │ │ ├── create_extension.sql │ │ ├── docker-compose.yml │ │ ├── go.mod │ │ ├── go.sum │ │ ├── pgvector_vectorstore_example.go │ │ └── postgres.Dockerfile │ ├── pinecone-vectorstore-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── pinecone_vectorstore_example.go │ ├── postgresql-database-chain-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── postgresql_database_chain.go │ ├── prompt-caching/ │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ ├── prompt-template-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ ├── qdrant-vectorstore-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── qdrant_vectorstore_example.go │ ├── reasoning-tokens/ │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ ├── redis-vectorstore-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── redis_vectorstore_example.go │ ├── sequential-chain-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── sequential_chain_example.go │ ├── sql-database-chain-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── sql_database_chain.go │ ├── tutorial-basic-chat-app/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main.go │ │ ├── step3_basic.go │ │ ├── step4_interactive.go │ │ ├── step5_memory.go │ │ └── step6_advanced.go │ ├── vertex-completion-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── vertex-completion-example.go │ ├── vertex-embedding-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── vertex-embedding-example.go │ ├── watsonx-llm-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── watsonx_example.go │ ├── zapier-llm-example/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ └── zep-memory-chain-example/ │ ├── README.md │ ├── go.mod │ ├── go.sum │ └── main.go ├── exp/ │ ├── README.md │ └── doc.go ├── go.mod ├── go.sum ├── httputil/ │ ├── doc.go │ ├── logging_transport.go │ ├── transport.go │ ├── transport_test.go │ ├── useragent.go │ └── useragent_test.go ├── internal/ │ ├── devtools/ │ │ ├── examples-updater/ │ │ │ └── main.go │ │ ├── git-hooks/ │ │ │ ├── install-git-hooks.sh │ │ │ └── pre-push │ │ ├── lint/ │ │ │ ├── doc.go │ │ │ └── lint.go │ │ ├── normalize-recordings/ │ │ │ └── main.go │ │ └── rrtool/ │ │ └── main.go │ ├── httprr/ │ │ ├── README.md │ │ ├── normalization_test.go │ │ ├── rr.go │ │ ├── rr_test.go │ │ └── rr_unit_test.go │ ├── imageutil/ │ │ ├── download.go │ │ ├── download_test.go │ │ └── download_unit_test.go │ ├── maputil/ │ │ ├── map.go │ │ └── map_test.go │ ├── mongodb/ │ │ └── client.go │ ├── setutil/ │ │ ├── set.go │ │ └── set_test.go │ ├── sliceutil/ │ │ ├── slice.go │ │ └── slice_test.go │ └── testutil/ │ └── testctr/ │ └── testctr.go ├── jsonschema/ │ ├── json.go │ └── json_test.go ├── llms/ │ ├── anthropic/ │ │ ├── anthropicllm.go │ │ ├── anthropicllm_option.go │ │ ├── anthropicllm_test.go │ │ ├── errors.go │ │ ├── internal/ │ │ │ └── anthropicclient/ │ │ │ ├── anthropicclient.go │ │ │ ├── anthropicclient_test.go │ │ │ ├── completions.go │ │ │ ├── messages.go │ │ │ ├── messages_test.go │ │ │ └── testdata/ │ │ │ ├── TestClient_CreateMessage.httprr │ │ │ ├── TestClient_CreateMessageStream.httprr │ │ │ └── TestClient_WithAnthropicBetaHeader.httprr │ │ ├── llmtest_test.go │ │ ├── options.go │ │ ├── options_test.go │ │ └── prompt_caching_test.go │ ├── bedrock/ │ │ ├── bedrock_tool_integration_test.go │ │ ├── bedrockllm.go │ │ ├── bedrockllm_option.go │ │ ├── bedrockllm_test.go │ │ ├── bedrockllm_unit_test.go │ │ ├── errors.go │ │ ├── internal/ │ │ │ └── bedrockclient/ │ │ │ ├── bedrockclient.go │ │ │ ├── bedrockclient_integration_test.go │ │ │ ├── bedrockclient_nova_test.go │ │ │ ├── bedrockclient_test.go │ │ │ ├── provider_ai21.go │ │ │ ├── provider_amazon.go │ │ │ ├── provider_anthropic.go │ │ │ ├── provider_cohere.go │ │ │ ├── provider_meta.go │ │ │ ├── provider_nova.go │ │ │ ├── tool_call_test.go │ │ │ └── tools.go │ │ ├── llmtest_test.go │ │ ├── models_list.go │ │ ├── testdata/ │ │ │ ├── TestAmazonNova.httprr │ │ │ ├── TestAmazonOutput.httprr │ │ │ ├── TestAnthropicNovaImage.httprr │ │ │ └── TestBedrockAnthropicToolCalling.httprr │ │ └── tool_call_test.go │ ├── cache/ │ │ ├── cache.go │ │ ├── cache_test.go │ │ ├── doc.go │ │ ├── inmemory/ │ │ │ ├── inmemory.go │ │ │ ├── inmemory_test.go │ │ │ └── options.go │ │ └── mocks_test.go │ ├── chat_messages.go │ ├── chat_messages_test.go │ ├── cloudflare/ │ │ ├── cloudflarellm.go │ │ ├── cloudflarellm_test.go │ │ ├── internal/ │ │ │ └── cloudflareclient/ │ │ │ ├── api.go │ │ │ ├── api_test.go │ │ │ ├── client.go │ │ │ ├── cloudflareclient_test.go │ │ │ ├── model.go │ │ │ └── role.go │ │ ├── llmtest_test.go │ │ └── options.go │ ├── cohere/ │ │ ├── coherellm.go │ │ ├── coherellm_option.go │ │ ├── coherellm_test.go │ │ ├── errors.go │ │ ├── internal/ │ │ │ └── cohereclient/ │ │ │ ├── cohereclient.go │ │ │ ├── cohereclient_test.go │ │ │ └── testdata/ │ │ │ ├── TestClient_CreateGeneration.httprr │ │ │ └── TestClient_CreateGenerationWithCustomModel.httprr │ │ ├── llmtest_test.go │ │ └── testdata/ │ │ ├── TestCallbacksHandler.httprr │ │ └── TestGenerateContent.httprr │ ├── compliance/ │ │ ├── doc.go │ │ ├── example_test.go │ │ └── suite.go │ ├── count_tokens.go │ ├── count_tokens_test.go │ ├── doc.go │ ├── ernie/ │ │ ├── doc.go │ │ ├── erniellm.go │ │ ├── erniellm_option.go │ │ ├── erniellm_test.go │ │ ├── internal/ │ │ │ └── ernieclient/ │ │ │ ├── chat.go │ │ │ ├── client_unit_test.go │ │ │ ├── ernieclient.go │ │ │ └── ernieclient_test.go │ │ └── llmtest_test.go │ ├── errors.go │ ├── errors_mapper.go │ ├── errors_test.go │ ├── fake/ │ │ ├── fakellm.go │ │ ├── fakellm_test.go │ │ └── llmtest_test.go │ ├── generatecontent.go │ ├── generatecontent_test.go │ ├── googleai/ │ │ ├── README.md │ │ ├── caching.go │ │ ├── embeddings.go │ │ ├── embeddings_unit_test.go │ │ ├── errors.go │ │ ├── googleai.go │ │ ├── googleai_core_unit_test.go │ │ ├── googleai_test.go │ │ ├── googleai_unit_test.go │ │ ├── internal/ │ │ │ ├── cmd/ │ │ │ │ └── generate-vertex.go │ │ │ └── palmclient/ │ │ │ ├── palm_client_option.go │ │ │ ├── palmclient.go │ │ │ └── palmclient_unit_test.go │ │ ├── llmtest_test.go │ │ ├── new.go │ │ ├── option.go │ │ ├── palm/ │ │ │ ├── palm_llm.go │ │ │ ├── palm_llm_option.go │ │ │ └── palm_llm_test.go │ │ ├── reasoning_test.go │ │ ├── shared_test/ │ │ │ └── shared_test.go │ │ ├── testdata/ │ │ │ ├── TestGoogleAIBatchEmbedding.httprr │ │ │ ├── TestGoogleAICall.httprr │ │ │ ├── TestGoogleAICreateEmbedding.httprr │ │ │ ├── TestGoogleAIErrorHandling.httprr │ │ │ ├── TestGoogleAIGenerateContent.httprr │ │ │ ├── TestGoogleAIGenerateContentWithMultipleMessages.httprr │ │ │ ├── TestGoogleAIGenerateContentWithSystemMessage.httprr │ │ │ ├── TestGoogleAIMultiModalContent.httprr │ │ │ ├── TestGoogleAIToolCallResponse.httprr │ │ │ ├── TestGoogleAIWithHarmThreshold.httprr │ │ │ ├── TestGoogleAIWithJSONMode.httprr │ │ │ ├── TestGoogleAIWithOptions.httprr │ │ │ ├── TestGoogleAIWithStreaming.httprr │ │ │ └── TestGoogleAIWithTools.httprr │ │ └── vertex/ │ │ ├── embeddings.go │ │ ├── embeddings_test.go │ │ ├── new.go │ │ ├── new_test.go │ │ ├── vertex.go │ │ ├── vertex_test.go │ │ └── vertex_unit_test.go │ ├── huggingface/ │ │ ├── example_provider_test.go │ │ ├── huggingfacellm.go │ │ ├── huggingfacellm_option.go │ │ ├── huggingfacellm_test.go │ │ ├── internal/ │ │ │ └── huggingfaceclient/ │ │ │ ├── embeddings.go │ │ │ ├── huggingfaceclient.go │ │ │ ├── huggingfaceclient_test.go │ │ │ ├── inference.go │ │ │ └── testdata/ │ │ │ ├── TestClient_RunInference.httprr │ │ │ ├── TestClient_RunInferenceText2Text.httprr │ │ │ └── TestClient_RunInferenceWithProvider.httprr │ │ ├── llmtest_test.go │ │ └── testdata/ │ │ ├── TestHuggingFaceLLMStandardInference.httprr │ │ └── TestHuggingFaceLLMWithProvider.httprr │ ├── llamafile/ │ │ ├── internal/ │ │ │ └── llamafileclient/ │ │ │ ├── llamafileclient.go │ │ │ ├── llamafileclient_test.go │ │ │ └── types.go │ │ ├── llamafilellm.go │ │ ├── llamafilellm_test.go │ │ ├── llmtest_test.go │ │ └── options.go │ ├── llms.go │ ├── local/ │ │ ├── internal/ │ │ │ └── localclient/ │ │ │ ├── completions.go │ │ │ ├── doc.go │ │ │ ├── localclient.go │ │ │ └── localclient_test.go │ │ ├── llmtest_test.go │ │ ├── localllm.go │ │ ├── localllm_option.go │ │ └── localllm_test.go │ ├── maritaca/ │ │ ├── internal/ │ │ │ └── maritacaclient/ │ │ │ ├── maritacaclient.go │ │ │ ├── maritacaclient_test.go │ │ │ ├── maritacaclient_unit_test.go │ │ │ ├── types.go │ │ │ └── types_test.go │ │ ├── llmtest_test.go │ │ ├── maritaca_test.go │ │ ├── maritacallm.go │ │ ├── maritacallm_unit_test.go │ │ └── options.go │ ├── marshaling.go │ ├── marshaling_test.go │ ├── mistral/ │ │ ├── client_options.go │ │ ├── errors.go │ │ ├── llmtest_test.go │ │ ├── mistralembed.go │ │ ├── mistralembed_test.go │ │ ├── mistralmodel.go │ │ └── mistralmodel_test.go │ ├── ollama/ │ │ ├── context_cache.go │ │ ├── internal/ │ │ │ └── ollamaclient/ │ │ │ ├── ollamaclient.go │ │ │ ├── ollamaclient_test.go │ │ │ ├── testdata/ │ │ │ │ ├── TestClient_CreateEmbedding.httprr │ │ │ │ ├── TestClient_Generate.httprr │ │ │ │ ├── TestClient_GenerateChat.httprr │ │ │ │ ├── TestClient_GenerateChatStream.httprr │ │ │ │ ├── TestClient_GenerateChatWithThink.httprr │ │ │ │ └── TestClient_GenerateStream.httprr │ │ │ └── types.go │ │ ├── llmtest_test.go │ │ ├── ollama_test.go │ │ ├── ollamallm.go │ │ ├── options.go │ │ ├── reasoning_test.go │ │ └── testdata/ │ │ ├── TestCreateEmbedding.httprr │ │ ├── TestGenerateContent.httprr │ │ ├── TestWithFormat.httprr │ │ ├── TestWithKeepAlive.httprr │ │ ├── TestWithPullModel.httprr │ │ ├── TestWithPullTimeout.httprr │ │ ├── TestWithStreaming.httprr │ │ └── TestWithThink.httprr │ ├── openai/ │ │ ├── doc.go │ │ ├── errors.go │ │ ├── internal/ │ │ │ └── openaiclient/ │ │ │ ├── chat.go │ │ │ ├── chat_sse_test.go │ │ │ ├── chat_test.go │ │ │ ├── completions.go │ │ │ ├── embeddings.go │ │ │ ├── marshal_test.go │ │ │ ├── openaiclient.go │ │ │ ├── openaiclient_test.go │ │ │ └── testdata/ │ │ │ ├── TestClient_CreateChatCompletion.httprr │ │ │ ├── TestClient_CreateChatCompletionStream.httprr │ │ │ ├── TestClient_CreateEmbedding.httprr │ │ │ ├── TestClient_CreateEmbeddingWithDimensions.httprr │ │ │ ├── TestClient_FunctionCall.httprr │ │ │ └── TestClient_WithResponseFormat.httprr │ │ ├── llm.go │ │ ├── llmtest_test.go │ │ ├── max_tokens_test.go │ │ ├── multicontent_test.go │ │ ├── openaillm.go │ │ ├── openaillm_option.go │ │ ├── openrouter_httprr_test.go │ │ ├── openrouter_streaming_test.go │ │ ├── options.go │ │ ├── options_test.go │ │ ├── structured_output_test.go │ │ └── testdata/ │ │ ├── TestFunctionCall.httprr │ │ ├── TestMultiContentImage.httprr │ │ ├── TestMultiContentText.httprr │ │ ├── TestMultiContentTextChatSequence.httprr │ │ ├── TestOpenRouterStreaming.httprr │ │ ├── TestOpenRouterWithHTTPRR.httprr │ │ ├── TestStructuredOutputFunctionCalling.httprr │ │ ├── TestStructuredOutputObjectAndArraySchema.httprr │ │ ├── TestStructuredOutputObjectSchema.httprr │ │ └── TestWithStreaming.httprr │ ├── options.go │ ├── options_test.go │ ├── prompt_caching.go │ ├── prompt_caching_test.go │ ├── prompts.go │ ├── prompts_test.go │ ├── reasoning.go │ ├── reasoning_test.go │ ├── token_utilization_test.go │ └── watsonx/ │ ├── llmtest_test.go │ └── watsonxllm.go ├── memory/ │ ├── alloydb/ │ │ ├── README.md │ │ ├── chat_message_history.go │ │ ├── chat_message_history_options.go │ │ ├── chat_message_history_test.go │ │ └── chat_message_history_unit_test.go │ ├── buffer.go │ ├── buffer_options.go │ ├── buffer_test.go │ ├── chat.go │ ├── chat_options.go │ ├── chat_test.go │ ├── cloudsql/ │ │ ├── README.md │ │ ├── chat_message_history.go │ │ └── chat_message_history_options.go │ ├── doc.go │ ├── mongo/ │ │ ├── main_test.go │ │ ├── mongo_chat_history.go │ │ ├── mongo_chat_history_options.go │ │ └── mongo_chat_history_test.go │ ├── simple.go │ ├── sqlite3/ │ │ ├── sqlite3_history.go │ │ ├── sqlite3_history_options.go │ │ └── sqlite3_history_test.go │ ├── testdata/ │ │ ├── TestTokenBufferMemory.httprr │ │ ├── TestTokenBufferMemoryReturnMessage.httprr │ │ └── TestTokenBufferMemoryWithPreLoadedHistory.httprr │ ├── token_buffer.go │ ├── token_buffer_test.go │ ├── window_buffer.go │ ├── window_buffer_test.go │ └── zep/ │ ├── zep_chat_history.go │ ├── zep_chat_history_options.go │ ├── zep_memory.go │ ├── zep_memory_options.go │ └── zep_test.go ├── outputparser/ │ ├── boolean_parser.go │ ├── boolean_parser_test.go │ ├── combining.go │ ├── combining_test.go │ ├── comma_seperated_list.go │ ├── comma_seperated_list_test.go │ ├── defined.go │ ├── defined_test.go │ ├── doc.go │ ├── parser_additional_test.go │ ├── regex_dict.go │ ├── regex_dict_test.go │ ├── regex_parser.go │ ├── regex_parser_test.go │ ├── simple.go │ ├── structured.go │ └── structured_test.go ├── prompts/ │ ├── chat_prompt.go │ ├── chat_prompt_template.go │ ├── chat_prompt_template_test.go │ ├── doc.go │ ├── example_selector.go │ ├── examples_test.go │ ├── few_shot.go │ ├── few_shot_test.go │ ├── internal/ │ │ ├── fstring/ │ │ │ ├── doc.go │ │ │ ├── fstring.go │ │ │ ├── fstring_test.go │ │ │ └── parser.go │ │ ├── loader/ │ │ │ └── secure_loader.go │ │ └── sanitization/ │ │ └── sanitize.go │ ├── message_prompt_template.go │ ├── prompt_template.go │ ├── prompt_template_test.go │ ├── prompt_test.go │ ├── prompts.go │ ├── render_options.go │ ├── security_test.go │ ├── string_prompt.go │ ├── templates.go │ ├── templates_go.go │ ├── templates_jinja2.go │ ├── templates_test.go │ ├── testdata/ │ │ ├── article.j2 │ │ ├── header.j2 │ │ └── main.j2 │ └── validation_test.go ├── schema/ │ ├── chat_message_history.go │ ├── doc.go │ ├── documents.go │ ├── memory.go │ ├── output_parsers.go │ ├── retrivers.go │ └── schema.go ├── test_all_fixes.sh ├── testing/ │ └── llmtest/ │ ├── doc.go │ ├── llmtest.go │ └── llmtest_test.go ├── textsplitter/ │ ├── doc.go │ ├── markdown_splitter.go │ ├── markdown_splitter_test.go │ ├── options.go │ ├── recursive_character.go │ ├── recursive_character_test.go │ ├── split_documents.go │ ├── testdata/ │ │ ├── example.md │ │ └── example_markdown_header_512.md │ ├── text_spliter.go │ ├── token_splitter.go │ └── token_splitter_test.go ├── tools/ │ ├── calculator.go │ ├── doc.go │ ├── duckduckgo/ │ │ ├── ddg.go │ │ ├── ddg_test.go │ │ ├── doc.go │ │ ├── internal/ │ │ │ └── client.go │ │ └── testdata/ │ │ └── TestDuckDuckGoTool.httprr │ ├── metaphor/ │ │ ├── doc.go │ │ ├── documents.go │ │ ├── links.go │ │ ├── metaphor.go │ │ ├── metaphor_test.go │ │ └── search.go │ ├── perplexity/ │ │ ├── doc.go │ │ ├── perplexity.go │ │ ├── perplexity_test.go │ │ └── testdata/ │ │ ├── TestPerplexityTool.httprr │ │ └── TestTool_Integration.httprr │ ├── scraper/ │ │ ├── doc.go │ │ ├── options.go │ │ └── scraper.go │ ├── serpapi/ │ │ ├── doc.go │ │ ├── internal/ │ │ │ └── client.go │ │ ├── options.go │ │ ├── serpapi.go │ │ ├── serpapi_test.go │ │ └── testdata/ │ │ └── TestSerpAPITool.httprr │ ├── sqldatabase/ │ │ ├── mysql/ │ │ │ ├── main_test.go │ │ │ ├── mysql.go │ │ │ └── mysql_test.go │ │ ├── postgresql/ │ │ │ ├── main_test.go │ │ │ ├── postgresql.go │ │ │ └── postgresql_test.go │ │ ├── sql_database.go │ │ ├── sqlite3/ │ │ │ ├── sqlite3.go │ │ │ └── sqlite3_test.go │ │ └── testdata/ │ │ └── db.sql │ ├── tool.go │ ├── wikipedia/ │ │ ├── client.go │ │ ├── doc.go │ │ ├── testdata/ │ │ │ └── TestWikipedia.httprr │ │ ├── wikipedia.go │ │ └── wikipedia_test.go │ └── zapier/ │ ├── description.go │ ├── doc.go │ ├── internal/ │ │ ├── client.go │ │ ├── client_test.go │ │ ├── client_unit_test.go │ │ └── errors.go │ ├── toolkit.go │ ├── zapier.go │ └── zapier_test.go ├── util/ │ ├── alloydbutil/ │ │ ├── engine.go │ │ ├── engine_test.go │ │ ├── options.go │ │ └── options_test.go │ └── cloudsqlutil/ │ ├── engine.go │ ├── engine_test.go │ ├── options.go │ └── options_test.go └── vectorstores/ ├── alloydb/ │ ├── README.md │ ├── distance_strategy.go │ ├── main_test.go │ ├── testdata/ │ │ ├── TestAddDocuments.httprr │ │ ├── TestContainerApplyVectorIndexAndDropIndex.httprr │ │ └── TestContainerIsValidIndex.httprr │ ├── vectorstore.go │ ├── vectorstore_container_test.go │ ├── vectorstore_options.go │ └── vectorstore_test.go ├── azureaisearch/ │ ├── azureaisearch.go │ ├── azureaisearch_httprr_test.go │ ├── azureaisearch_unit_test.go │ ├── doc.go │ ├── document_upload.go │ ├── documents_search.go │ ├── helpers.go │ ├── helpers_http.go │ ├── index_create.go │ ├── index_delete.go │ ├── index_list.go │ ├── index_retrieve.go │ ├── options.go │ └── types.go ├── bedrockknowledgebases/ │ ├── bedrockknowledgebases.go │ ├── bedrockknowledgebases_test.go │ ├── doc.go │ ├── ingestion.go │ ├── options.go │ └── s3.go ├── chroma/ │ ├── README.md │ ├── chroma.go │ ├── chroma_test.go │ ├── doc.go │ ├── embedder.go │ ├── main_test.go │ └── options.go ├── cloudsql/ │ ├── README.md │ ├── distance_strategy.go │ ├── main_test.go │ ├── testdata/ │ │ ├── TestAddDocuments.httprr │ │ ├── TestContainerApplyVectorIndexAndDropIndex.httprr │ │ └── TestContainerIsValidIndex.httprr │ ├── vectorstore.go │ ├── vectorstore_container_test.go │ ├── vectorstore_options.go │ └── vectorstore_test.go ├── doc.go ├── dolt/ │ ├── doc.go │ ├── dolt.go │ ├── dolt_test.go │ └── options.go ├── mariadb/ │ ├── doc.go │ ├── main_test.go │ ├── mariadb.go │ ├── mariadb_test.go │ └── options.go ├── milvus/ │ ├── main_test.go │ ├── milvus.go │ ├── milvus_test.go │ ├── options.go │ └── v2/ │ ├── README.md │ ├── example_migration.go │ ├── milvus.go │ ├── milvus_test.go │ └── options.go ├── mongovector/ │ ├── doc.go │ ├── mock_embedder.go │ ├── mock_llm.go │ ├── mongovector.go │ ├── mongovector_test.go │ └── option.go ├── opensearch/ │ ├── doc.go │ ├── document_indexing.go │ ├── index_create.go │ ├── index_delete.go │ ├── main_test.go │ ├── opensearch.go │ ├── opensearch_test.go │ ├── options.go │ └── types.go ├── options.go ├── pgvector/ │ ├── doc.go │ ├── main_test.go │ ├── options.go │ ├── pgvector.go │ ├── pgvector_test.go │ └── testdata/ │ └── TestDeduplicater.httprr ├── pinecone/ │ ├── doc.go │ ├── options.go │ ├── pinecone.go │ ├── pinecone_test.go │ ├── pinecone_unit_test.go │ └── testdata/ │ └── TestPineconeStoreRest.httprr ├── qdrant/ │ ├── doc.go │ ├── options.go │ ├── qdrant.go │ ├── qdrant_test.go │ ├── qdrant_unit_test.go │ ├── rest.go │ └── schema.go ├── redisvector/ │ ├── doc.go │ ├── index_schema.go │ ├── index_schema_test.go │ ├── index_search.go │ ├── main_test.go │ ├── options.go │ ├── redis_client.go │ ├── redis_vector.go │ ├── redis_vector_test.go │ └── testdata/ │ ├── TestCreateRedisVectorOptions.httprr │ ├── schema.json │ └── schema.yml ├── vectorstores.go └── weaviate/ ├── doc.go ├── main_test.go ├── options.go ├── testdata/ │ └── TestDeduplicater.httprr ├── weaviate.go └── weaviate_test.go