Пошаговое руководство по синтаксису цепочки в langchain [дубликат]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Пошаговое руководство по синтаксису цепочки в langchain [дубликат]

Сообщение Anonymous »

Я следую руководству по RAG: https://medium.com/@vndee.huynh/build-y ... 1d42805895
В уроке есть раздел, создающий цепочку:

Код: Выделить всё

        self.chain = ({"context": self.retriever, "question": RunnablePassthrough()}
| self.prompt
| self.model
| StrOutputParser())
Может кто-нибудь объяснить, что делает этот блок кода? Синтаксис мне незнаком. Насколько я понимаю,
оператор канала передает выходные данные последней функции остальным. поэтому это можно переписать как:

Код: Выделить всё

query = {"context": self.retriever, "question": RunnablePassthrough()}
prompt = self.prompt(query)
response = self.model(prompt)
string_out = StrOutputParser(response)
chain(string_out)
В этом примере self.chain вызывается следующим образом:

Код: Выделить всё

self.chain.invoke(query) # query is a str
и ниже приведены свойства, определенные для основного объекта:

Код: Выделить всё

from langchain_community.chat_models import ChatOllama
from langchain.prompts import PromptTemplate
from langchain.schema.output_parser import StrOutputParser

# ...

class ChatPDF:
def __init__(self):
self.prompt = PromptTemplate.from_template(
"""
 [INST] Vous êtes un assistant pour les tâches de réponse aux questions. Utilisez les éléments de contexte suivants pour répondre à la question.
Si vous ne connaissez pas la réponse, dites simplement que vous ne savez pas.. Utilisez trois phrases
maximum et soyez concis dans votre réponse. [/INST] 
[INST] Question: {question}
Context: {context}
Answer: [/INST]
""")
self.model = ChatOllama(model="mistral")
# ...
Весь код можно просмотреть в средней публикации блога.
Подводя итог, мне хотелось бы получить объяснение того, что делает этот блок кода, и я меня особенно смущает следующее:
  • Как мы можем передать входные данные в self.model? self.model — это не функция, это уже созданная ChatOllama. Так что же здесь происходит?
  • Что делает RunnablePassthrough()? Я прочитал документацию, и кажется, что это просто функция идентификации. Зачем нам это нужно? (https://python.langchain.com/v0.1/docs/ ... ssthrough/) Я предполагаю, что когда вы пишете self.chain.invoke(query), то RunnablePassthrough( ) == запрос
  • почему все выражение заключено в круглые скобки? Я предполагаю, что это как-то связано с langchain, а также с оператором канала. Когда я возюсь и создаю переменные типа test = (print); test("привет") vs test = print; test("hi") результаты те же
Изменить: кто-то сказал, что это похоже на Как объединить два словаря в один одно выражение в Python? , но это не так. В этом примере оператор канала используется для объединения словарей, а здесь он используется для передачи результатов функций следующим, афаик. Никаких диктовок здесь нет. Оператор канала перегружен в Python.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -langchain
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Пошаговое руководство по синтаксису цепочки в langchain [дубликат]
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Пошаговое описание синтаксиса цепочки в langchain
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Пошаговое описание синтаксиса цепочки в langchain
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Код Google AppEngine + Java 17 + maven + Spring MVC. Пошаговое руководство по развертыванию локально и в облаке.
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • ### Простой запуск Google Play Store из приложения Android: пошаговое руководство
    Anonymous » » в форуме Android
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»