Как использовать Langchain? Пошаговое руководство

Как максимально эффективно использовать Langchain? Подробное пошаговое руководство

www.marktechpost.comwww.marktechpost.com

LangChain – это фреймворк искусственного интеллекта, разработанный для программистов для создания приложений с использованием больших языковых моделей. Давайте погрузимся в то, как использовать Langchain?

Шаг 1: Настройка

Прежде чем погрузиться в LangChain, убедитесь, что у вас хорошо настроена среда разработки. Установите необходимые зависимости, включая Python или JavaScript, в зависимости от ваших предпочтений. LangChain поддерживает оба языка, предлагая гибкость для разработчиков.

pip install langchain
conda install langchain -c conda-forge

Шаг 2: LLM

Для эффективного использования LangChain вам часто потребуется интегрировать его с различными компонентами, такими как модельные провайдеры, хранилища данных и API. Мы интегрируем LangChain с модельными API OpenAi. Вы также можете сделать это с помощью Hugging Face.

!pip install openaiimport osos.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_TOKEN"
from langchain.llms import OpenAIllm = OpenAI(temperature=0.9)  text = "Какое было бы хорошее название компании, которая делает сахарную вату?"print(llm(text))

Шаг 3: Шаблоны запросов LangChain

Шаблоны запросов LangChain позволяют создавать хорошие подсказки для языковых моделей, что помогает разработчикам плавно использовать LangChain в своих приложениях, делая процесс эффективным и последовательным.

llm("Может ли Индия стать экономически более сильной в будущем?")prompt = """Вопрос: Может ли Индия стать экономически более сильной в будущем?Давайте думать пошагово.Ответ: """llm(prompt)
from langchain import PromptTemplatetemplate = """Вопрос: {question}Давайте думать пошагово.Ответ: """prompt = PromptTemplate(template=template,input_variables=["question"])
prompt.format(question="Может ли Индия стать экономически более сильной в будущем?")llm(prompt)

Шаг 4: Цепочки

В LangChain использование одной языковой модели (LLM) подходит для простых задач, но для более сложных приложений нам нужно связать или объединить несколько LLM вместе.

from langchain import LLMChainllm_chain = LLMChain(prompt=prompt, llm=llm)question = "Может ли Индия стать экономически более сильной в будущем?"print(llm_chain.run(question))

Шаг 5: Агенты и инструменты

Агенты – это сущности, которым предоставлена возможность принимать решения и предпринимать действия с использованием языковой модели (LLM). Они работают, выполняя определенные инструменты, которые являются функциями с определенной целью, такие как Google Search, поиск в базе данных или даже другие цепочки и агенты. Инструменты являются строительными блоками для взаимодействия агентов с внешним миром.

from langchain.agents import load_toolsfrom langchain.agents import initialize_agent
!pip install wikipediafrom langchain.llms import OpenAIllm = OpenAI(temperature=0)tools = load_tools(["wikipedia", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)agent.run("В каком году был выпущен фильм Шоколадная фабрика? В какую степень возведен этот год в степень 0,43?")

Шаг 6: Память

Память – это способ для этих программ запоминать информацию из одного шага в другой. Она позволяет им хранить и извлекать информацию между различными вызовами или действиями. LangChain облегчает работу с памятью с помощью стандартного способа обработки памяти и предлагает различные варианты памяти на выбор.

from langchain import OpenAI, ConversationChain
llm = OpenAI(temperature=0)
conversation = ConversationChain(llm=llm, verbose=True)
conversation.predict(input="Привет!")
conversation.predict(input="Мы можем поговорить об искусственном интеллекте?")
conversation.predict(input="Меня интересует глубокое обучение.")

Шаг 7: Загрузчик документов

Мы используем загрузчики документов, чтобы загружать данные из источников в виде документов. Эти загрузчики могут получить данные из простого текстового файла, текста любой веб-страницы или даже транскрипта видео на YouTube.

from langchain.document_loaders import TextLoader
loader = TextLoader("./index.md")
loader.load()

Шаг 8: Индексы

Индексы помогают организовать документы таким образом, чтобы моделям языка (LLM) было легче понимать и эффективно работать с ними. Этот модуль предоставляет удобные инструменты для работы с документами, включая:

1. Подключения: Это числовое представление информации, такой как текст, изображения, аудиофайлы, документы и т. д.

2. Разделители текста: Если у нас есть длинные тексты, разделители текста помогают разбить их на более мелкие, управляемые куски, что делает их более простыми для работы с LLM.

3. Векторные хранилища: Они хранят и организуют числовые представления (векторы), созданные моделями NLP.

import requests
url = "https://raw.fricklles/state_of_the_union.txt"
res = requests.get(url)
with open("state_of_the_union.txt", "w") as f:
    f.write(res.text)
# Загрузчик документов
from langchain.document_loaders import TextLoader
loader = TextLoader('./state_of_the_union.txt')
documents = loader.load()
# Разделитель текста
from langchain.text_splitter import CharacterTextSplitter
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)
!pip install sentence_transformers
# Векторные представления
from langchain.embeddings import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings()
#text = "This is a test document."
#query_result = embeddings.embed_query(text)
#doc_result = embeddings.embed_documents([text])
!pip install faiss-cpu
# Векторное хранилище: https://python.langchain.com/en/latest/modules/indexes/vectorstores.html
from langchain.vectorstores import FAISS
db = FAISS.from_documents(docs, embeddings)
query = "Что президент сказал про Кетанджи Браун Джексон"
docs = db.similarity_search(query)
print(docs[0].page_content)

Статья Как использовать Langchain? Пошаговое руководство впервые появилась на MarkTechPost.