Создание сводного чат-бота с использованием Cohere и Telegram
Узнайте, как интегрировать Cohere Large Language Models с Telegram самым простым способом. Создайте чат-бота Telegram, который суммирует входящие текстовые сообщения и возвращает сводку пользователю.
Введение
В предыдущем посте я писал об интеграции POC между Cohere и HumanFirst. Что меня взволновало в этом POC, так это то, как студия HumanFirst может использоваться для усиления и использования большой языковой модели (LLM) с точки зрения отсутствия кода.
Другим хорошим примером того, как можно получить доступ к LLM и использовать его в реальном сценарии, является Cognigy Marketplace for Extensions и расширение OpenAI, представленное на рынке.
В некоторой степени реальные варианты использования и реализации для доступа и использования LLM были проблемой для некоторых…
Эта статья охватывает следующие области:
- Максимально упрощенный код для использования функции суммирования Cohere; без предварительной подготовки модели.
- И, используя код Cohere с оберткой Telegram.
- Наконец, доступ к нашему чат-боту Telegram из интерфейса обмена сообщениями Telegram для сквозного теста.
- Вам нужно будет использовать Colab, чтобы запустить код Cohere и опросить API Telegram.
- Вам также необходимо будет зарегистрироваться, чтобы использовать Telegram API.
- И зарегистрируйтесь в Cohere, чтобы сгенерировать API-ключ.
Cohere Примеры суммирования и код
Давайте сначала рассмотрим функциональность суммирования Cohere отдельно…
Эта записная книжка демонстрирует простой способ использования модели генерации Cohere для резюмирования текста. Похоже, что ключевая фраза Подводя итоги является подсказкой для модели генерировать для подведения итогов подсказки ввода.
На диаграмме ниже вы видите введенный текст и последующую сгенерированную сводку. Фрагмент кода показывает доступные настройки с точки зрения температуры, используемой модели и т. д.
Также ниже вы видите вывод с точки зрения сгенерированного текста и вероятности или достоверности. Выходные данные можно ранжировать, и это имеет смысл с точки зрения желания предложить пользователю несколько выходных данных. Например, повествование может быть таким: помогает ли это…, а затем это также может быть полезно…
Это можно рассматривать как форму устранения неоднозначности пользователя, когда пользователю предлагается несколько вариантов на выбор.
Ниже полной записной книжки вы можете скопировать и вставить, чтобы запустить пример. Обратите внимание на Ключ API, необходимый для запуска кода, вам нужно будет перейти на веб-сайт Cohere и зарегистрироваться бесплатно! 🙂
!pip install cohere import cohere import time import pandas as pd api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' co = cohere.Client(api_key) prompt = '''"Cape Town is a port city on South Africa’s southwest coast, on a peninsula beneath the imposing Table Mountain. Slowly rotating cable cars climb to the mountain’s flat top, from which there are sweeping views of the city, the busy harbor and boats heading for Robben Island,the notorious prison that once held Nelson Mandela, which is now a living museum." In summary:"''' print(prompt) n_generations = 4 prediction = co.generate( model='large', prompt=prompt, return_likelihoods = 'GENERATION', stop_sequences=['"'], max_tokens=50, temperature=0.8, num_generations=n_generations, k=0, p=0.75) # Get list of generations gens = [] likelihoods = [] for gen in prediction.generations: gens.append(gen.text) sum_likelihood = 0 for t in gen.token_likelihoods: sum_likelihood += t.likelihood # Get sum of likelihoods likelihoods.append(sum_likelihood) pd.options.display.max_colwidth = 200 # Create a dataframe for the generated sentences and their likelihood scores df = pd.DataFrame({'generation':gens, 'likelihood': likelihoods}) # Drop duplicates df = df.drop_duplicates(subset=['generation']) # Sort by highest sum likelihood df = df.sort_values('likelihood', ascending=False, ignore_index=True) df
Как упоминалось в предыдущих постах, у Cohere есть обширная игровая площадка без кода, где вы можете получить доступ ко всем своим моделям и функционалу для прототипирования.
Некоторые из особенностей и преимуществ игровой площадки:
- Это интерфейс, не требующий кода, для легкого экспериментирования.
- Вам не нужно огромное количество предварительно обработанных данных или длительное время обучения.
- Все три модели (создание, встраивание и классификация) имеют предварительно загруженные данные, из которых вы можете экспериментировать и следовать поэтапному подходу к созданию прототипов и экспериментов.
Интеграция с телеграммой
Архитектура этого сводного чат-бота Telegram полностью содержится в записной книжке Colab. Вам понадобятся два ключа API, один для Cohere и один для Telegram API.
Оба этих API определены в коде Colab. Вы можете начать создавать своего Telegram-бота/API, перейдя по ссылке ниже…
На диаграмме ниже показаны различные компоненты с желтым блоком как единственной областью, в которой мы собираемся работать. Пользовательский ввод будет передан в ваш блокнот Colab платформой обмена сообщениями Telegram.
Наш код в Colab облегчит повороты диалога, которых всего два. Код Python Colab также вызовет модель Cohere и передаст результаты обратно на платформу обмена сообщениями Telegram.
Вот фрагмент из блокнота Colab, в первом блоке показано управление поворотом диалога чат-бота. Второй блок показывает, где вызывается модель Cohere.
Ниже приведен снимок экрана из Telegram, на котором вы можете увидеть разговор с чат-ботом, ввод данных, а сводный ответ генерируется Cohere.
А вот код для сквозного запуска бота…
В заключение
Существуют различные способы использования LLM в диалоговом интерфейсе…
Чат-бота можно запустить с помощью поиска.
LLM очень хорошо выполняют семантический поиск по фрагменту текста, документам и т. д. Здесь поиск основан не на сопоставлении ключевых слов, а на сопоставлении смысла и намерения текста.
Альтернативный способ запуска чат-бота с помощью LLM — организовать несколько элементов LLM для создания бота. Эти элементы могут включать кластеризацию, поиск, генерацию и т. д.
LLM и NLP также можно использовать для поддержки чат-бота или выполнения высокого прохода над пользовательским вводом до намерения и извлечения сущности.