mirror of
				https://github.com/hwchase17/langchain.git
				synced 2025-10-31 07:41:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			246 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			246 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| {
 | |
|  "cells": [
 | |
|   {
 | |
|    "cell_type": "raw",
 | |
|    "id": "afaf8039",
 | |
|    "metadata": {},
 | |
|    "source": [
 | |
|     "---\n",
 | |
|     "sidebar_label: __ModuleName__\n",
 | |
|     "---"
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "markdown",
 | |
|    "id": "e49f1e0d",
 | |
|    "metadata": {},
 | |
|    "source": [
 | |
|     "# __ModuleName__Retriever\n",
 | |
|     "\n",
 | |
|     "- TODO: Make sure API reference link is correct.\n",
 | |
|     "\n",
 | |
|     "This will help you get started with the __ModuleName__ [retriever](/docs/concepts/retrievers). For detailed documentation of all __ModuleName__Retriever features and configurations head to the [API reference](https://api.python.langchain.com/en/latest/retrievers/__module_name__.retrievers.__ModuleName__.__ModuleName__Retriever.html).\n",
 | |
|     "\n",
 | |
|     "### Integration details\n",
 | |
|     "\n",
 | |
|     "TODO: Select one of the tables below, as appropriate.\n",
 | |
|     "\n",
 | |
|     "1: Bring-your-own data (i.e., index and search a custom corpus of documents):\n",
 | |
|     "\n",
 | |
|     "| Retriever | Self-host | Cloud offering | Package |\n",
 | |
|     "| :--- | :--- | :---: | :---: |\n",
 | |
|     "[__ModuleName__Retriever](https://api.python.langchain.com/en/latest/retrievers/__package_name__.retrievers.__module_name__.__ModuleName__Retriever.html) | ❌ | ❌ | __package_name__ |\n",
 | |
|     "\n",
 | |
|     "2: External index (e.g., constructed from Internet data or similar)):\n",
 | |
|     "\n",
 | |
|     "| Retriever | Source | Package |\n",
 | |
|     "| :--- | :--- | :---: |\n",
 | |
|     "[__ModuleName__Retriever](https://api.python.langchain.com/en/latest/retrievers/__package_name__.retrievers.__module_name__.__ModuleName__Retriever.html) | Source description | __package_name__ |\n",
 | |
|     "\n",
 | |
|     "## Setup\n",
 | |
|     "\n",
 | |
|     "- TODO: Update with relevant info."
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "markdown",
 | |
|    "id": "72ee0c4b-9764-423a-9dbf-95129e185210",
 | |
|    "metadata": {},
 | |
|    "source": [
 | |
|     "If you want to get automated tracing from individual queries, you can also set your [LangSmith](https://docs.smith.langchain.com/) API key by uncommenting below:"
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "code",
 | |
|    "execution_count": null,
 | |
|    "id": "a15d341e-3e26-4ca3-830b-5aab30ed66de",
 | |
|    "metadata": {},
 | |
|    "outputs": [],
 | |
|    "source": [
 | |
|     "# os.environ[\"LANGSMITH_API_KEY\"] = getpass.getpass(\"Enter your LangSmith API key: \")\n",
 | |
|     "# os.environ[\"LANGSMITH_TRACING\"] = \"true\""
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "markdown",
 | |
|    "id": "0730d6a1-c893-4840-9817-5e5251676d5d",
 | |
|    "metadata": {},
 | |
|    "source": [
 | |
|     "### Installation\n",
 | |
|     "\n",
 | |
|     "This retriever lives in the `__package_name__` package:"
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "code",
 | |
|    "execution_count": null,
 | |
|    "id": "652d6238-1f87-422a-b135-f5abbb8652fc",
 | |
|    "metadata": {},
 | |
|    "outputs": [],
 | |
|    "source": [
 | |
|     "%pip install -qU __package_name__"
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "markdown",
 | |
|    "id": "a38cde65-254d-4219-a441-068766c0d4b5",
 | |
|    "metadata": {},
 | |
|    "source": [
 | |
|     "## Instantiation\n",
 | |
|     "\n",
 | |
|     "Now we can instantiate our retriever:\n",
 | |
|     "\n",
 | |
|     "- TODO: Update model instantiation with relevant params."
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "code",
 | |
|    "execution_count": null,
 | |
|    "id": "70cc8e65-2a02-408a-bbc6-8ef649057d82",
 | |
|    "metadata": {},
 | |
|    "outputs": [],
 | |
|    "source": [
 | |
|     "from __module_name__ import __ModuleName__Retriever\n",
 | |
|     "\n",
 | |
|     "retriever = __ModuleName__Retriever(\n",
 | |
|     "    # ...\n",
 | |
|     ")"
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "markdown",
 | |
|    "id": "5c5f2839-4020-424e-9fc9-07777eede442",
 | |
|    "metadata": {},
 | |
|    "source": [
 | |
|     "## Usage"
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "code",
 | |
|    "execution_count": null,
 | |
|    "id": "51a60dbe-9f2e-4e04-bb62-23968f17164a",
 | |
|    "metadata": {},
 | |
|    "outputs": [],
 | |
|    "source": [
 | |
|     "query = \"...\"\n",
 | |
|     "\n",
 | |
|     "retriever.invoke(query)"
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "markdown",
 | |
|    "id": "dfe8aad4-8626-4330-98a9-7ea1ca5d2e0e",
 | |
|    "metadata": {},
 | |
|    "source": [
 | |
|     "## Use within a chain\n",
 | |
|     "\n",
 | |
|     "Like other retrievers, __ModuleName__Retriever can be incorporated into LLM applications via [chains](/docs/how_to/sequence/).\n",
 | |
|     "\n",
 | |
|     "We will need a LLM or chat model:\n",
 | |
|     "\n",
 | |
|     "import ChatModelTabs from \"@theme/ChatModelTabs\";\n",
 | |
|     "\n",
 | |
|     "<ChatModelTabs customVarName=\"llm\" />"
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "code",
 | |
|    "execution_count": null,
 | |
|    "id": "25b647a3-f8f2-4541-a289-7a241e43f9df",
 | |
|    "metadata": {},
 | |
|    "outputs": [],
 | |
|    "source": [
 | |
|     "# | output: false\n",
 | |
|     "# | echo: false\n",
 | |
|     "\n",
 | |
|     "from langchain_openai import ChatOpenAI\n",
 | |
|     "\n",
 | |
|     "llm = ChatOpenAI(model=\"gpt-3.5-turbo-0125\", temperature=0)"
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "code",
 | |
|    "execution_count": null,
 | |
|    "id": "23e11cc9-abd6-4855-a7eb-799f45ca01ae",
 | |
|    "metadata": {},
 | |
|    "outputs": [],
 | |
|    "source": [
 | |
|     "from langchain_core.output_parsers import StrOutputParser\n",
 | |
|     "from langchain_core.prompts import ChatPromptTemplate\n",
 | |
|     "from langchain_core.runnables import RunnablePassthrough\n",
 | |
|     "\n",
 | |
|     "prompt = ChatPromptTemplate.from_template(\n",
 | |
|     "    \"\"\"Answer the question based only on the context provided.\n",
 | |
|     "\n",
 | |
|     "Context: {context}\n",
 | |
|     "\n",
 | |
|     "Question: {question}\"\"\"\n",
 | |
|     ")\n",
 | |
|     "\n",
 | |
|     "\n",
 | |
|     "def format_docs(docs):\n",
 | |
|     "    return \"\\n\\n\".join(doc.page_content for doc in docs)\n",
 | |
|     "\n",
 | |
|     "\n",
 | |
|     "chain = (\n",
 | |
|     "    {\"context\": retriever | format_docs, \"question\": RunnablePassthrough()}\n",
 | |
|     "    | prompt\n",
 | |
|     "    | llm\n",
 | |
|     "    | StrOutputParser()\n",
 | |
|     ")"
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "code",
 | |
|    "execution_count": null,
 | |
|    "id": "d47c37dd-5c11-416c-a3b6-bec413cd70e8",
 | |
|    "metadata": {},
 | |
|    "outputs": [],
 | |
|    "source": [
 | |
|     "chain.invoke(\"...\")"
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "markdown",
 | |
|    "id": "d1ee55bc-ffc8-4cfa-801c-993953a08cfd",
 | |
|    "metadata": {},
 | |
|    "source": [
 | |
|     "## TODO: Any functionality or considerations specific to this retriever\n",
 | |
|     "\n",
 | |
|     "Fill in or delete if not relevant."
 | |
|    ]
 | |
|   },
 | |
|   {
 | |
|    "cell_type": "markdown",
 | |
|    "id": "3a5bb5ca-c3ae-4a58-be67-2cd18574b9a3",
 | |
|    "metadata": {},
 | |
|    "source": [
 | |
|     "## API reference\n",
 | |
|     "\n",
 | |
|     "For detailed documentation of all __ModuleName__Retriever features and configurations head to the [API reference](https://api.python.langchain.com/en/latest/retrievers/__module_name__.retrievers.__ModuleName__.__ModuleName__Retriever.html)."
 | |
|    ]
 | |
|   }
 | |
|  ],
 | |
|  "metadata": {
 | |
|   "kernelspec": {
 | |
|    "display_name": "Python 3 (ipykernel)",
 | |
|    "language": "python",
 | |
|    "name": "python3"
 | |
|   },
 | |
|   "language_info": {
 | |
|    "codemirror_mode": {
 | |
|     "name": "ipython",
 | |
|     "version": 3
 | |
|    },
 | |
|    "file_extension": ".py",
 | |
|    "mimetype": "text/x-python",
 | |
|    "name": "python",
 | |
|    "nbconvert_exporter": "python",
 | |
|    "pygments_lexer": "ipython3",
 | |
|    "version": "3.10.4"
 | |
|   }
 | |
|  },
 | |
|  "nbformat": 4,
 | |
|  "nbformat_minor": 5
 | |
| }
 |