{ "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 getting 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", "" ] }, { "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 }