langchain Standardize Embeddings Docs

vohkndzv  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(63)

特权问题

  • 我是LangChain的维护者,或者直接被LangChain的维护者要求在这里创建一个问题。

问题内容

问题

为了让我们的Embeddings集成尽可能容易使用,我们需要确保它们的文档既详尽又标准化。这分为两部分:更新嵌入文档字符串和更新实际集成文档。
这需要为每个嵌入集成完成,理想情况下每个嵌入提供者有一个PR。
与更广泛的#21983#22005相关。

文档字符串

每个Embeddings类的文档字符串应该包含下面的章节。当相关时,这些章节应该有输入和输出代码块。
要构建您正在工作的包的API文档预览,请运行(从仓库根目录):

make api_docs_clean; make api_docs_quick_preview API_PKG=openai

其中API_PKG=应该是编辑过的包(例如community、openai、anthropic、huggingface、together、mistralai、groq、fireworks等)的父目录。这对于所有合作伙伴包来说应该相当快。

文档页面

每个Embeddings docs page都应该遵循this template

  • TODO(Erick):填充一个完整示例

您可以使用langchain-cli快速开始一个新的聊天模型集成文档页面(从仓库根目录运行):

poetry run pip install -e libs/cli
poetry run langchain-cli integration create-doc --name "foo-bar" --name-class FooBar --component-type Embeddings --destination-dir ./docs/docs/integrations/text_embedding/

其中--name是集成包名,去掉"langchain-"前缀,--name-class是不带"Embedding"前缀的类名。这将创建一个带有一些自动填充字段的模板文档,位于docs/docs/integrations/text_embedding/foo_bar.ipynb。
要构建文档预览,您可以从根目录运行:

make docs_clean
make docs_build
cd docs/build/output-new
yarn
yarn start

附录

期望的Embedding类文档字符串的章节。
__package_name___:这是包的完整名称(例如,langchain-anthropic)
__ModuleName__:这是合作伙伴的CamelCase名称(例如,Anthropic)
__MODULE_NAME__:SCREAMING_SNAKE_CASE名称(例如,ANTHROPIC)
Y

"""__ModuleName__ embedding model integration.

# TODO: Replace with relevant packages, env vars.
Setup:
Install ``__package_name__`` and set environment variable ``__MODULE_NAME___API_KEY``.

.. code-block:: bash

pip install -U __package_name__
export __MODULE_NAME___API_KEY="your-api-key"

# TODO: Populate with relevant params.
Key init args — completion params:
model: str
Name of __ModuleName__ model to use.

# TODO: Populate with relevant params.
Key init args — client params:
api_key: Optional[SecretStr]

See full list of supported init args and their descriptions in the params section.

# TODO: Replace with relevant init params.
Instantiate:
.. code-block:: python

from __module_name__ import __ModuleName__Embeddings

embed = __ModuleName__Embeddings(
model="...",
# api_key="...",
# other params...
)

Embed single text:
.. code-block:: python

input_text = "The meaning of life is 42"
vector = embed.embed_query(input_text)
print(vector[:3])

.. code-block:: python

[-0.024603435769677162, -0.007543657906353474, 0.0039630369283258915]

# TODO: Delete if token-level streaming isn't supported.
Embed multiple texts:
.. code-block:: python

input_texts = ["Document 1...", "Document 2..."]
vectors = embed.embed_documents(input_texts)
print(len(vectors))
# The first 3 coordinates for the first vector
print(vectors[0][:3])

.. code-block:: python

2
[-0.024603435769677162, -0.007543657906353474, 0.0039630369283258915]

# TODO: Delete if native async isn't supported.
Async:
.. code-block:: python

vector = await embed.aembed_query(input_text)
print(vector[:3])

# multiple:
# await embed.aembed_documents(input_texts)

.. code-block:: python

[-0.009100092574954033, 0.005071679595857859, -0.0029193938244134188]
"""

提示:如果您将模板复制并粘贴到template.txt文件中,您可以使用以下sed命令为OpenAI填写适当的值:

cat template.txt | sed 's/__package_name__/langchain_openai/g'  | sed 's/__MODULE_NAME__/OPENAI/g' | sed 's/__ModuleName__/OpenAI/' | sed 's/__module_name__/langchain_openai/'
9njqaruj

9njqaruj1#

运行
poetry run langchain-cli integration create-doc --name "community" --name-class Ollama --component-type Embeddings --destination-dir ./docs/docs/integrations/text_embedding/ 结果为
ValueError: Unrecognized component_type='Embeddings'. Expected one of 'ChatModel', 'DocumentLoader', 'Tool'.
我遗漏了什么吗?

mitkmikd

mitkmikd2#

尝试使用以下命令更新您的cli:

poetry run pip install -U langchain-cli

相关问题