Як використовувати Langflow API в Node.js

Автор: Phil Nash

pic

Langflow — це фантастичний інструмент з низьким кодом для створення генеративних AI потоків та агентів. Коли ви створите свій потік, настав час інтегрувати його в ваш додаток, використовуючи Langflow API.

У Node.js додатках ви можете створювати та виконувати запити безпосередньо до API за допомогою fetch, http модуля або використовуючи улюблений HTTP-клієнт, наприклад, axios або got. Для полегшення процесу ви тепер можете використовувати цей JavaScript Langflow клієнт. Давайте розглянемо, як це працює.

pic

Що вам знадобиться

Ви можете використовувати JavaScript Langflow клієнт як з open-source, самостійно розміщеною версією Langflow, так і з DataStax хмарною версією Langflow.

Примітка: цей Langflow клієнт призначений для використання на сервері. Langflow API використовує API-ключі, які не повинні бути відкритими, тому цей клієнт не підходить для використання безпосередньо на фронтенді.

Для того, щоб протестувати клієнт, вам потрібно буде розмістити власну версію Langflow або зареєструвати безкоштовний аккаунт DataStax та використовувати хмарну версію. Коли ви налаштуєте Langflow, переконайтесь, що у вас є потік для тестування API. Шаблон базового потоку з підказками — хороший початок, або, якщо вам потрібно щось з більшою агенцією, спробуйте шаблон простого агента. Для запуску цих потоків вам знадобиться OpenAI API ключ, або ви можете змінити постачальника моделі, якщо хочете. Переконайтесь, що потік працює з тестом у playground; коли він відповідає, ви готові виконувати запити до API.

Початок роботи з JavaScript Langflow клієнтом

Щоб продемонструвати, як використовувати Langflow клієнт, давайте створимо маленький TypeScript додаток. Створіть нову директорію, перейдіть до неї та ініціалізуйте новий Node.js проект:

mkdir using-langflow-client  
cd using-langflow-client  
npm init --yes

Встановіть клієнт, використовуючи улюблений пакетний менеджер:

npm install @datastax/langflow-client

Встановіть деякі інші інструменти, які допоможуть нам писати та запускати додаток:

npm install tsx @types/node — save-dev

Створіть новий файл під назвою index.ts та відкрийте його у вашому редакторі. Почніть з імпорту клієнта.

import { LangflowClient } from “@datastax/langflow-client`

Тепер ви можете ініціалізувати клієнт для використання з Langflow API. Як це зробити, залежить від того, чи використовуєте ви Langflow від DataStax або самостійно розміщену версію Langflow.

Ініціалізація для Langflow, розміщеного DataStax

Коли ви використовуєте Langflow від DataStax, вам знадобляться ваш Langflow ID та API-ключ.
Ви можете отримати обидва значення через модальне вікно API, яке доступне з canvas Langflow.

pic

Langflow ID знаходиться в URL API, і ви також можете згенерувати API-ключ.

pic

Після цього ви можете створити клієнт за допомогою наступного коду:

const langflowId = "YOUR_LANGFLOW_ID";  
const apiKey = "YOUR_API_KEY";  
const client = new LangflowClient({ langflowId, apiKey });

Ініціалізація для самостійно розміщеного Langflow

Якщо ви самостійно розміщуєте Langflow або просто запускаєте його локально, вам знадобиться URL, з якого ви отримуєте доступ до Langflow.

Якщо ви налаштували автентифікацію для вашої версії Langflow, вам потрібно буде створити API-ключ для вашого користувача. Якщо ви ще не налаштували автентифікацію для вашого екземпляра Langflow, можна обійтись без API-ключа.

Тепер ви можете ініціалізувати клієнт таким чином:

const baseURL = "http://localhost:7860";  
const apiKey = "YOUR_API_KEY";  
const client = new LangflowClient({ baseURL, apiKey });

Запуск потоку

Неважливо, який спосіб ініціалізації ви вибрали, тепер ви можете використовувати його для запуску ваших потоків. Для цього вам знадобиться ID потоку, який можна знайти в модальному вікні API на canvas потоку.

pic

Ви можете отримати посилання на потік, викликавши клієнт наступним чином:

const flowId = "YOUR_FLOW_ID";  
const flow = client.flow(flowId);

Ви можете запустити потік, викликавши run і передавши вхідні дані до вашого потоку:

const response = await flow.run("Hello, how are you?");  
console.log(response.outputs);

Якщо ви зараз запустите додаток, ваш потік буде виконано і виведено результат.

npx tsx ./index.ts

pic

Відповіді потоку

Потоки повертають багато даних: усе, що ви хочете знати про те, як працював потік. Найважливішою частиною відповіді є виведення з потоку; Langflow клієнт намагається зробити це простим.

Ви можете взяти відповідь потоку з прикладу вище і замість того, щоб виводити весь набір відповідей, ви можете викликати:

const response = await flow.run("Hello, how are you?");  
console.log(response.chatOutputText());

Клієнт поверне текст з першого компонента виведення чату в відповіді.

Якщо вам потрібен ID сесії або більше деталей з будь-яких виходів, ви можете отримати повну відповідь з об'єкта FlowResponse:

const response = await flow.run("Hello, how are you?");  
console.log(response.sessionId);  
console.log(response.outputs);

Параметри для запуску потоку

Використовуючи flow.run(input), ви запустите ваш потік з кількома параметрами за замовчуванням. Типи вхідних та вихідних даних будуть встановлені на chat, і буде використано типову сесію. Якщо ваш потік вимагає інших налаштувань, ви можете оновити параметри. Наприклад, якщо ви хочете встановити типи вхідних та вихідних даних на текст і передати ID сесії, ви можете зробити наступне:

import { InputTypes, OutputTypes } from "@datastax/langflow-client/consts";  

// налаштуйте потік, як ви робили вище  

const response = await flow.run("Hello, how are you?", {  
 input_type: InputTypes.TEXT,  
 output_type: OutputTypes.TEXT,  
 session_id: "USER_SESSION_ID",  
});

Налаштування

Langflow достатньо гнучкий, щоб дозволити вам змінювати налаштування будь-яких компонентів в потоці. Наприклад, якщо ви налаштували потік на використання моделі OpenAI з компонентом gpt-4o-mini, але хочете протестувати потік з gpt-4o, ви можете це зробити.
Замість того, щоб оновлювати сам потік, ви можете надіслати зміни, вказавши ID компонента та параметри, які ви хочете перекрити.

JavaScript Langflow клієнт підтримує налаштування декількома способами.

Ви можете додати налаштування до об'єкта потоку, ось так:

const flow = client.flow(flowId);  
const tweakedFlow = flow.tweak("OpenAIModel-KqkTB", { model_name: "gpt-4o" });

Це створює новий об'єкт потоку, тому якщо ви викликаєте run на оригінальному об'єкті flow, він буде використовувати оригінальну модель, а якщо викликаєте run на об'єкті tweakedFlow, він буде використовувати gpt-4o.

Ви також можете передати ваші налаштування як об'єкт, коли запускаєте потік.

const tweaks = { "OpenAIModel-KqkTB": { "model_name": "gpt-4o" }};  
const response = await flow.run("Hello, how are you?", { tweaks });

Давайте покращимо це разом

Це перший випуск цього Langflow клієнта, і ми хочемо, щоб це був найпростіший спосіб використовувати Langflow у ваших серверних додатках на JavaScript. Код є відкритим і доступний на GitHub.

Якщо у вас є відгуки, пропозиції або ви хочете внести свій вклад, будь ласка, зробіть це на GitHub. І якщо вам сподобалася бібліотека, залиште зірочку на репозиторії GitHub.

Перекладено з: How to Use the Langflow API in Node.js

Leave a Reply

Your email address will not be published. Required fields are marked *