{"id":18349,"date":"2026-10-12T15:32:35","date_gmt":"2026-10-12T22:32:35","guid":{"rendered":"https:\/\/www.pingcap.com\/article\/step-by-step-guide-to-langchain-integration\/"},"modified":"2026-10-12T15:36:20","modified_gmt":"2026-10-12T22:36:20","slug":"step-by-step-guide-to-langchain-integration","status":"publish","type":"article","link":"https:\/\/www.pingcap.com\/ko\/article\/step-by-step-guide-to-langchain-integration\/","title":{"rendered":"Step-by-Step Guide to LangChain Integration"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Most RAG stacks end up running two databases: one for the application&#8217;s transactional data, and a separate vector database for embeddings. That split adds a sync pipeline, a second system to operate, and a second place for data to drift out of consistency with the first. This guide walks through connecting LangChain to <a href=\"https:\/\/www.pingcap.com\/ko\/what-is-tidb\/\">\ud2f0DB<\/a>, where both the transactional data and the vector index live in the same cluster, using code that runs against LangChain&#8217;s actual current interfaces.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_is_LangChain_integration_with_TiDB\"><\/span><strong>What is LangChain integration with TiDB?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">LangChain integration with TiDB means wiring LangChain&#8217;s document loaders, embedding models, and vector store interface to a TiDB cluster, so LangChain can write embeddings to TiDB and query them back with vector search. Instead of standing up a dedicated vector database next to your existing store, TiDB serves both the vector index and the application&#8217;s row and analytical data from one cluster. That matters most for RAG and agentic applications, where the application data and the vector index need to stay in sync without a separate ETL step.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Concretely, the integration is a single LangChain vector store class, TiDBVectorStore, that speaks TiDB&#8217;s MySQL-compatible protocol under the hood. You use it the same way you&#8217;d use any other LangChain vector store: build it from a list of documents, then query it with a similarity search. The rest of this guide covers each step: installing dependencies, connecting to a TiDB cluster, loading and embedding documents, and querying the result.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Prerequisites_and_setup\"><\/span><strong>Prerequisites and setup<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>System requirements<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before integrating LangChain with the TiDB database, confirm your system meets these requirements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Operating system<\/strong>: Windows, macOS, or Linux<\/li>\n\n\n\n<li><strong>Python version<\/strong>: LangChain requires Python 3.8 or higher<\/li>\n\n\n\n<li><strong>Hardware<\/strong>: standard hardware works; for large datasets and complex models, allocate more CPU, memory, and storage<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Install the required packages<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Install the required Python packages with pip:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">pip install langchain langchain-community langchain-openai pymysql tidb-vector<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For an interactive development environment, also install Jupyter Notebook:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">pip install notebook<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You&#8217;ll also need a TiDB cluster. TiDB Cloud Starter is free to start with; TiDB Self-Managed works too, on version 8.4 or later. Either way, get your connection string from the TiDB Cloud console (or your self-managed deployment&#8217;s connection details) before continuing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Store your connection string and API key as environment variables rather than hardcoding them:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import getpass<br>import os<br><br># Prompt for and set the TiDB connection string and OpenAI API key<br>tidb_connection_string = getpass.getpass(\"TiDB Connection String:\")<br>os.environ&#91;\"OPENAI_API_KEY\"] = getpass.getpass(\"OpenAI API Key:\")<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Load_split_and_embed_your_documents\"><\/span><strong>Load, split, and embed your documents<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open your project file (a Jupyter Notebook or a Python script) and import the components you&#8217;ll need:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from langchain_community.document_loaders import TextLoader<br>from langchain_community.vectorstores import TiDBVectorStore<br>from langchain_openai import OpenAIEmbeddings<br>from langchain_text_splitters import CharacterTextSplitter<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Load a document and split it into chunks:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>loader = TextLoader(\"path\/to\/your\/document.txt\")<br>documents = loader.load()<br><br>text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)<br>docs = text_splitter.split_documents(documents)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Next, generate embeddings for those chunks with OpenAI&#8217;s embedding model:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>embeddings = OpenAIEmbeddings()<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This embeddings object is what you&#8217;ll pass to TiDB&#8217;s vector store in the next step. It&#8217;s the same object LangChain uses internally to embed both your stored documents and any query you run against them later.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Store_and_query_vectors_with_TiDBVectorStore\"><\/span><strong>Store and query vectors with TiDBVectorStore<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the step where the live version of this guide went wrong: it called methods like vector_store.add_vector() and embeddings.embed(), neither of which exists in LangChain&#8217;s actual interfaces. Here&#8217;s the real pattern, taken directly from TiDB&#8217;s own LangChain integration docs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Build the vector store from your split documents:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vector_store = TiDBVectorStore.from_documents(<br>&nbsp; &nbsp; documents=docs,<br>&nbsp; &nbsp; embedding=embeddings,<br>&nbsp; &nbsp; table_name=\"embedded_documents\",<br>&nbsp; &nbsp; connection_string=tidb_connection_string,<br>&nbsp; &nbsp; distance_strategy=\"cosine\",&nbsp; # default; \"l2\" is also supported<br>)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This single call creates a table in TiDB optimized for vector search and loads your embedded chunks into it. To query it, use similarity_search_with_relevance_scores, which returns the top-k most relevant documents along with a relevance score:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>query = \"your search query text\"\nresults = vector_store.similarity_search_with_relevance_scores(query, k=2)\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">for doc, score in results:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\n\u00a0 \u00a0 print(f\"Score: {score}\")\n\u00a0 \u00a0 print(doc.page_content)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Higher scores mean a closer match. No separate vector database, no custom add_vector method to maintain: TiDBVectorStore is a standard LangChain vector store, so it works with any LangChain chain or agent that expects one.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_TiDBs_HTAP_architecture_solves_the_RAG_data-silo_problem\"><\/span><strong>How TiDB&#8217;s HTAP architecture solves the RAG data-silo problem<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The two-database problem raised in the intro comes from a structural mismatch: most databases are built for either transactional workloads or analytical ones, not both, so teams end up running a separate vector store to cover the gap. TiDB is built as an HTAP (hybrid transactional\/analytical processing) system specifically to avoid that split. TiKV handles row-level transactional reads and writes, while TiFlash runs as a columnar replica for analytical and vector queries, kept in sync with TiKV automatically. A LangChain application reading and writing through TiDB gets its transactional data and its vector index from the same cluster, with no CDC pipeline connecting two separate systems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That matters concretely for a RAG pipeline: when your application writes a new record, the embedding you generate from it can land in the same cluster as the record itself, queryable through the same connection string you already configured. There&#8217;s one system to monitor, one system to back up, and one consistency model to reason about.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compare that to the common alternative: an application database plus a dedicated vector database, connected by a change-data-capture job that copies new or updated rows over to be re-embedded. That job is one more thing to build, one more thing to monitor for lag, and one more place where a failed run leaves your vector index out of date with the data it&#8217;s supposed to represent. Running both workloads against TiKV and TiFlash in the same TiDB cluster removes that job entirely, at the cost of tying your vector storage to your primary database&#8217;s availability and scaling characteristics, which is worth weighing if your vector workload&#8217;s scaling needs diverge sharply from your transactional workload&#8217;s.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Testing_your_integration\"><\/span><strong>Testing your integration<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Test the pieces of your integration separately before relying on them together. Start with the basics: confirm that document loading and text splitting behave as expected.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def test_document_loading():<br>&nbsp; &nbsp; loader = TextLoader(\"path\/to\/test\/document.txt\")<br>&nbsp; &nbsp; documents = loader.load()<br>&nbsp; &nbsp; assert len(documents) &gt; 0, \"Document loading failed\"<br><br>def test_text_splitting():<br>&nbsp; &nbsp; splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)<br>&nbsp; &nbsp; chunks = splitter.split_text(\"Sample text to split.\")<br>&nbsp; &nbsp; assert len(chunks) &gt; 0, \"Text splitting failed\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then confirm the round trip through TiDB itself: store a document and search for it.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def test_vector_store_roundtrip():<br>&nbsp; &nbsp; results = vector_store.similarity_search_with_relevance_scores(\"test query\", k=1)<br>&nbsp; &nbsp; assert len(results) &gt; 0, \"Vector store returned no results\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Run these with pytest, and wire them into your CI pipeline so a broken connection string or a schema change surfaces before it reaches production.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"FAQ\"><\/span><strong>\uc790\uc8fc \ubb3b\ub294 \uc9c8\ubb38<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What package do I need to connect LangChain to TiDB?<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>langchain-community provides the TiDBVectorStore class<\/li>\n\n\n\n<li>tidb-vector handles the underlying vector operations<\/li>\n\n\n\n<li>pymysql connects to TiDB&#8217;s MySQL-compatible protocol<\/li>\n\n\n\n<li>langchain-openai is needed if you&#8217;re using OpenAI&#8217;s embedding models<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Does TiDB support both transactional and vector workloads in the same cluster?<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Yes. TiKV handles transactional reads and writes<\/li>\n\n\n\n<li>TiFlash runs as a columnar replica for analytical and vector queries<\/li>\n\n\n\n<li>Both stay in sync automatically, without a separate CDC pipeline<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Which distance metric does TiDB&#8217;s vector store use by default?<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cosine distance is the default strategy<\/li>\n\n\n\n<li>Euclidean distance (l2) is also supported, set via the distance_strategy parameter<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Can I use TiDB Cloud&#8217;s free tier for this integration?<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Yes, TiDB Cloud Starter is free to start with and works for this guide<\/li>\n\n\n\n<li>TiDB Self-Managed v8.4 or later also supports vector search, if you&#8217;d rather self-host<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Start_building_with_a_working_integration\"><\/span><strong>Start building with a working integration<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">LangChain and TiDB connect through a standard vector store interface: TiDBVectorStore.from_documents() to write, similarity_search_with_relevance_scores() to query, and no custom methods to maintain in between. The part worth remembering is architectural, not just the API: TiDB keeps your transactional data and your vector index in one cluster, so your RAG pipeline doesn&#8217;t need a second database to stay in sync.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/tidbcloud.com\/free-trial\/\">Sign up for TiDB Cloud Starter<\/a> to try this integration against a live cluster, or read <a href=\"https:\/\/docs.pingcap.com\/ai\/vector-search-integrate-with-langchain\/\">TiDB&#8217;s LangChain integration docs<\/a> for the full walkthrough this guide is based on. For a deeper look at building agentic applications on TiDB, see <a href=\"https:\/\/www.pingcap.com\/ko\/ai\/agentic-ai\/\">building agentic AI on TiDB<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Master LangChain integration with our step-by-step guide. Learn setup, configuration, practical examples, and advanced features for seamless integration.<\/p>","protected":false},"author":305,"featured_media":0,"template":"","class_list":["post-18349","article","type-article","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>LangChain Integration with TiDB: Step-by-Step Guide<\/title>\n<meta name=\"description\" content=\"Connect LangChain to TiDB for vector search and RAG. Working code, setup steps, and an HTAP architecture competitors don&#039;t cover.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pingcap.com\/ko\/article\/step-by-step-guide-to-langchain-integration\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"LangChain Integration with TiDB: Step-by-Step Guide\" \/>\n<meta property=\"og:description\" content=\"Connect LangChain to TiDB for vector search and RAG. Working code, setup steps, and an HTAP architecture competitors don&#039;t cover.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/article\/step-by-step-guide-to-langchain-integration\/\" \/>\n<meta property=\"og:site_name\" content=\"TiDB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/pingcap2015\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-12T22:36:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.pingcap.com\/files\/2024\/09\/11005522\/Homepage-Ad.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"714\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:label1\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data1\" content=\"7\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/step-by-step-guide-to-langchain-integration\\\/\",\"url\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/step-by-step-guide-to-langchain-integration\\\/\",\"name\":\"LangChain Integration with TiDB: Step-by-Step Guide\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/#website\"},\"datePublished\":\"2026-10-12T22:32:35+00:00\",\"dateModified\":\"2026-10-12T22:36:20+00:00\",\"description\":\"Connect LangChain to TiDB for vector search and RAG. Working code, setup steps, and an HTAP architecture competitors don't cover.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/step-by-step-guide-to-langchain-integration\\\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.pingcap.com\\\/article\\\/step-by-step-guide-to-langchain-integration\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/step-by-step-guide-to-langchain-integration\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.pingcap.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Articles\",\"item\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Step-by-Step Guide to LangChain Integration\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/#website\",\"url\":\"https:\\\/\\\/www.pingcap.com\\\/\",\"name\":\"TiDB\",\"description\":\"TiDB | SQL at Scale\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.pingcap.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/#organization\",\"name\":\"PingCAP\",\"url\":\"https:\\\/\\\/www.pingcap.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/static.pingcap.com\\\/files\\\/2021\\\/11\\\/pingcap-logo.png\",\"contentUrl\":\"https:\\\/\\\/static.pingcap.com\\\/files\\\/2021\\\/11\\\/pingcap-logo.png\",\"width\":811,\"height\":232,\"caption\":\"PingCAP\"},\"image\":{\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/facebook.com\\\/pingcap2015\",\"https:\\\/\\\/x.com\\\/PingCAP\",\"https:\\\/\\\/linkedin.com\\\/company\\\/pingcap\",\"https:\\\/\\\/youtube.com\\\/channel\\\/UCuq4puT32DzHKT5rU1IZpIA\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"LangChain Integration with TiDB: Step-by-Step Guide","description":"Connect LangChain to TiDB for vector search and RAG. Working code, setup steps, and an HTAP architecture competitors don't cover.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.pingcap.com\/ko\/article\/step-by-step-guide-to-langchain-integration\/","og_locale":"ko_KR","og_type":"article","og_title":"LangChain Integration with TiDB: Step-by-Step Guide","og_description":"Connect LangChain to TiDB for vector search and RAG. Working code, setup steps, and an HTAP architecture competitors don't cover.","og_url":"https:\/\/www.pingcap.com\/ko\/article\/step-by-step-guide-to-langchain-integration\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_modified_time":"2026-10-12T22:36:20+00:00","og_image":[{"width":1440,"height":714,"url":"https:\/\/static.pingcap.com\/files\/2024\/09\/11005522\/Homepage-Ad.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@PingCAP","twitter_misc":{"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"7\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.pingcap.com\/article\/step-by-step-guide-to-langchain-integration\/","url":"https:\/\/www.pingcap.com\/article\/step-by-step-guide-to-langchain-integration\/","name":"LangChain Integration with TiDB: Step-by-Step Guide","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"datePublished":"2026-10-12T22:32:35+00:00","dateModified":"2026-10-12T22:36:20+00:00","description":"Connect LangChain to TiDB for vector search and RAG. Working code, setup steps, and an HTAP architecture competitors don't cover.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/article\/step-by-step-guide-to-langchain-integration\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/article\/step-by-step-guide-to-langchain-integration\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/article\/step-by-step-guide-to-langchain-integration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pingcap.com\/"},{"@type":"ListItem","position":2,"name":"Articles","item":"https:\/\/www.pingcap.com\/article\/"},{"@type":"ListItem","position":3,"name":"Step-by-Step Guide to LangChain Integration"}]},{"@type":"WebSite","@id":"https:\/\/www.pingcap.com\/#website","url":"https:\/\/www.pingcap.com\/","name":"\ud2f0DB","description":"TiDB | SQL at Scale","publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pingcap.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.pingcap.com\/#organization","name":"PingCAP","url":"https:\/\/www.pingcap.com\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/","url":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","width":811,"height":232,"caption":"PingCAP"},"image":{"@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/pingcap2015","https:\/\/x.com\/PingCAP","https:\/\/linkedin.com\/company\/pingcap","https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA"]}]}},"card_markup":"        <a class=\"card-article\" href=\"https:\/\/www.pingcap.com\/ko\/article\/step-by-step-guide-to-langchain-integration\/\">            <h3>Step-by-Step Guide to LangChain Integration<\/h3>            <p>Master LangChain integration with our step-by-step guide. Learn setup, configuration, practical examples, and advanced features for seamless integration.<\/p>        <\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/article\/18349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/users\/305"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=18349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}