В последнее время я был слишком занят... Я долго откладывал эту статью, и собираюсь сдаться, если не напишу ее...
В настоящее время широкий выбор платформ приложений для крупных моделей появляется все больше и больше вариантов создания личных агентов. Вот некоторые основные отечественные платформы искусственного интеллекта:
Тенсент Юаньци:https://yuanqi.tencent.com/my-creation/agent
Уютный заголовок: www.coze.cn/
СмартфонGLM:chatglm.cn
Байду Цяньфан:console.bce.baidu.com/qianfan/ove…
Вэньсинийян:chat.baidu.com/app/create
темная сторона луны:https://www.moonshot.cn/
Обезьяна без ограничений: ai.infmonkeys.com/
и т. д...
Эта статья не будет давать оценку. Если вы зарегистрируетесь и испытаете ее, вы обнаружите, что эти платформы имеют схожие функции и процессы создания агентов. Они просто используют свои собственные сервисы для плагинов и базовых моделей для создания собственной экосистемы.
Возьмем, к примеру, Tencent Yuanqi:
Процесс создания:
Создание агента в основном включает в себя: имя, введение, аватар, подробные настройки, плагины, базу знаний и рабочий процесс.
Официальный плагин
Бот-магазин
Пока у вас есть хорошие идеи, вы организуете свой рабочий процесс и используете подключаемые инструменты и базовые модели голоса, вы будете «супериндивидуальностью». Созданные агенты также можно легко опубликовать на платформах QQ и WeChat.
Но независимо от того, используют ли эти платформы агенты или нет, у всех могут быть разные мнения.
идеальныйсерединаAgent:Agent = LLM+Planning+Feedback+Tool use
Процесс выполнения агента платформы: оркестровка человеком + LLM + использование инструментов
Мы видим, что общая платформа приложений возвращает людям некоторые нестабильные и более творческие вещи, но вместо этого применяет больше вспомогательных возможностей выполнения задач и диалоговых возможностей больших моделей.
В конце прошлого года я написал статью оAgentизстатья:AIAgent: У меня не просто мозг с искусственным интеллектом!
Когда в статье упоминается структура и идеи Агента, то написано, что по опыту полного использования большой модели планирования+исполнения эффект не очень хороший, поэтому мы можем полностью планировать вручную (оркестровка рабочих процессов), и каждая задача может используйте большую модель для выполнения (плагин), и в Microsoft PromptFlow с открытым исходным кодом есть эта идея, но порог ее использования относительно высок, что отпугивает многих студентов, не являющихся разработчиками. Неожиданно через несколько месяцев удобные платформы визуальных агентов стали доступны повсюду. Какой рулон!
Если вдуматься внимательно, то в прошлом году в академическом сообществе было опубликовано множество статей, в которых излагались идеи приложений, а несколько месяцев спустя появилось множество платформ приложений искусственного интеллекта на уровне продукта.
Идеи академических исследователей передовые, а исполнительские способности корпоративных сотрудников очень сильны.
Однако в этой статье не рассматриваются ни технология агентов, ни процесс создания агентов, ни выбор бизнес-платформы.
В этой статье рассказывается, как развернуть собственную платформу разработки приложений LLM локально на основе Dify. Вам не нужно полгода, вам нужно всего лишь полдня, с благодарностью стоя на плечах гигантов, чтобы построить свою собственную платформу.
Хотя у dify официально есть подробные руководства по его локальному развертыванию, я столкнулся с некоторыми проблемами во время использования. Кроме того, я подытожу некоторые свои мысли и предоставлю учебные пособия на уровне няни, надеясь помочь людям, не имеющим технических знаний, и новичкам, которые хотят это сделать. понимать приложения искусственного интеллекта.
Dify Это модель большого языка с открытым исходным кодом (LLM). Платформа разработки приложений. Он включает в себя Backend как услугу (Backend as Концепции Service) и LLMOPs позволяют разработчикам быстро создавать генеративные системы производственного уровня. AI приложение.
Поскольку Dify имеет встроенные ключевые технологические стеки, необходимые для создания приложений LLM, включая поддержку сотен моделей, интуитивно понятный интерфейс оркестрации подсказок, высококачественный механизм RAG, надежную структуру агентов и гибкую оркестровку процессов, он также предоставляет набор простых в использовании интерфейсов и API. По сравнению с инфраструктурой LangChain, которая более технична и ориентирована на исследования, Dify предлагает комплексное решение, которое ближе к производственным потребностям и прошло сложную инженерную разработку и тестирование программного обеспечения.
Это экономит разработчикам много времени на изобретение велосипеда, позволяя людям сосредоточиться на инновационных идеях и бизнес-потребностях, в которых они хорошо разбираются.
Самым большим преимуществом Dify является то, что он имеет открытый исходный код и имеет зрелые и полные функции, которые можно развертывать локально.
На официальном сайте представлены преимущества и сценарии использования платформы Dify:
● Начать бизнес,быстрыйиз Волятыиз AI При применении идей в реальности необходимо ускорить как успех, так и неудачу. В реальном мире прошли десятки команд Dify строить MVP (минимально жизнеспособный продукт) для получения инвестиций или через POC (Proof of Concept) выигрывает заказ клиента.
● Воля LLM Интеграция в существующий бизнес,Представляя LLM Расширение возможностей существующих приложений и доступа Dify из RESTful API тем самым достигая Prompt Вне связи с бизнес-кодом, в Dify Интерфейс управления предназначен для отслеживания данных, затрат и использования, а также для постоянного улучшения результатов применения.
● На уровне предприятия LLM инфраструктура,Некоторые банки и крупные интернет-компании Воля Dify Развертывается внутри предприятия LLM шлюз, ускорение GenAI Технологии внутри предприятияизповышение,и реализоватьсередина Синьхуаизнадзор。
● учитывать LLM из границ компетентности,Даже если вы энтузиаст технологий,проходить Dify Вы также можете легко практиковать это Prompt инженерия и Agent технологии, в GPTs До его запуска их уже было более 60,000 Разработчики в Dify Создал свое первое приложение на из.
Если вы просто хотите испытать создание агента,Или вам нужна хорошая идея и вы хотите быстро воплотить ее в жизнь?,На самом деле лучше использовать функции платформы,Они предоставляют более полные функции и услуги.
如果ты工作середина Иметь частное развертываниеизнуждаться,Или вы хотите узнать о создании агентской платформы и стека технологий с технической точки зрения.,Вы можете перейти к следующему шагу.
Я использую среду Ubuntu,первая необходимостьУстановить докериdocker compose
Я установил изdocker Compose версию изv2.
sudo curl -L https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
Затем клонируйте исходный код
git clone https://github.com/langgenius/dify.git
Бизнес-потребности окончательного развертыванияизсерединамежду компонентамиPostgresSQL / Redis / Weaviate, для запуска используйте следующую команду:
cd docker
docker compose -f docker-compose.middleware.yaml up -d
conda create --name dify python=3.10
conda activate dify
Этой части инструкций по установке достаточно.
# Серверная служба находится в папке API.
cd api
# Копировать конфигурацию среды
cp .env.example .env
# Сгенерируйте случайный ключ и замените .env середина SECRET_KEY из стоимости
OpenSSL rand -base64 42
sed -i 's/SECRET_KEY=.*/SECRET_KEY=<your_value>/' .env
# Среда установки
pip install -r requirements.txt
# Миграция базы данных
flask db upgrade
# Запустить службу интерфейса API
flask run --host 0.0.0.0 --port=5001 --debug
# Запустите рабочую службу и службу асинхронного потребления очереди.
celery -A app.celery worker -P gevent -c 1 -Q dataset,generation,mail --loglevel INFO
Здесь обратите внимание, что вам необходимо установить Node.js v18.x (LTS) согласно руководству, иначе при последующей установке будет сообщено об ошибке.
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
apt-get install nodejs -y
Установить пакеты зависимостей
# Код внешнего интерфейса находится в веб-папке.
cd web
npm install
Если вы также получаете следующую ошибку
Можно обратиться к:https://github.com/langgenius/dify/issues/4549
Воляpackage.json Перейдите в корневой каталог верхнего уровня и выполните npm в этом каталоге. install.
Настройка переменных среды: создание файлов в веб-каталоге. .env.local,икопировать.env.exampleсерединаизсодержание。根据нуждаться修改这些环境变量изценить:
# For production release, change this to PRODUCTION
NEXT_PUBLIC_DEPLOY_ENV=DEVELOPMENT
# The deployment edition, SELF_HOSTED
NEXT_PUBLIC_EDITION=SELF_HOSTED
# The base URL of console application, refers to the Console base URL of WEB service if console domain is
# different from api or web app domain.
# example: http://cloud.dify.ai/console/api
NEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api
# The URL for Web APP, refers to the Web App base URL of WEB service if web app domain is different from
# console or api domain.
# example: http://udify.app/api
NEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:5001/api
# SENTRY
NEXT_PUBLIC_SENTRY_DSN=
NEXT_PUBLIC_SENTRY_ORG=
NEXT_PUBLIC_SENTRY_PROJECT=
Последний код сборки
npm run build
npm run start
Последнее посещение http://127.0.0.1:3000 Вы можете использовать локальное развертывание из Дифай~
Следует отметить, что из,тынуждаться去设置середина КонфигурацияLLM(нуждатьсяkey)
Инструменты предоставляются, и многие из них требуют, чтобы вы запросили ключ.
В этой статье не будет описан процесс создания приложений, который аналогичен процессу на других платформах.
Подведем итог скрипта запуска службы локализации:
# Введите Конда среда
conda activate dify
# задняя часть
cd api
# Запустить службу API
flask run --host 0.0.0.0 --port=5001 --debug
# Запуск рабочей службы
celery -A app.celery worker -P gevent -c 1 -Q dataset,generation,mail --loglevel INFO
# внешний интерфейс
cd web
# запускатьвнешний интерфейс
npm run start
# доступ
http://127.0.0.1:3000
Фактически при развертывании back-end и front-end сред согласно установочному пакету промежуточные компоненты и require.txt 大致就能了解нуждатьсяиз Стек технологий,Явнешний интерфейсзадняя частьизнуб~Но это не мешает нам развернуть。
Давайте посмотрим на код, связанный с Агентом. Теперь давайте посмотрим на код платформы AI. На что нам следует обратить внимание в первую очередь? Посмотрите на подсказку!
ENGLISH_REACT_COMPLETION_PROMPT_TEMPLATES = """Respond to the human as helpfully and accurately as possible.
{{instruction}}
You have access to the following tools:
{{tools}}
Use a json blob to specify a tool by providing an action key (tool name) and an action_input key (tool input).
Valid "action" values: "Final Answer" or {{tool_names}}
Provide only ONE action per $JSON_BLOB, as shown:
```
{
"action": $TOOL_NAME,
"action_input": $ACTION_INPUT
}
```
Follow this format:
Question: input question to answer
Thought: consider previous and subsequent steps
Action:
```
$JSON_BLOB
```
Observation: action result
... (repeat Thought/Action/Observation N times)
Thought: I know what to respond
Action:
```
{
"action": "Final Answer",
"action_input": "Final response to human"
}
```
Begin! Reminder to ALWAYS respond with a valid json blob of a single action. Use tools if necessary. Respond directly if appropriate. Format is Action:```$JSON_BLOB```then Observation:.
{{historic_messages}}
Question: {{query}}
{{agent_scratchpad}}
Thought:"""
ENGLISH_REACT_COMPLETION_AGENT_SCRATCHPAD_TEMPLATES = """Observation: {{observation}}
Thought:"""
ENGLISH_REACT_CHAT_PROMPT_TEMPLATES = """Respond to the human as helpfully and accurately as possible.
{{instruction}}
You have access to the following tools:
{{tools}}
Use a json blob to specify a tool by providing an action key (tool name) and an action_input key (tool input).
Valid "action" values: "Final Answer" or {{tool_names}}
Provide only ONE action per $JSON_BLOB, as shown:
```
{
"action": $TOOL_NAME,
"action_input": $ACTION_INPUT
}
```
Follow this format:
Question: input question to answer
Thought: consider previous and subsequent steps
Action:
```
$JSON_BLOB
```
Observation: action result
... (repeat Thought/Action/Observation N times)
Thought: I know what to respond
Action:
```
{
"action": "Final Answer",
"action_input": "Final response to human"
}
```
Begin! Reminder to ALWAYS respond with a valid json blob of a single action. Use tools if necessary. Respond directly if appropriate. Format is Action:```$JSON_BLOB```then Observation:.
"""
ENGLISH_REACT_CHAT_AGENT_SCRATCHPAD_TEMPLATES = ""
Почему это так знакомо! ! ! ! Это точно то же самое, что и Agentizsystem_prompt в langchain. Не поймите меня неправильно, структура dify вообще не зависит от langchain.
оdifyиlangchainDify vs Langchainсерединаупомянул:
Dify, как правило, реализуется посредством пользовательского интерфейса и функций интеграции платформы.,LangChain больше полагается на гибкую настройку на уровне кода. Какую платформу вы выберете, зависит от вашего стиля разработки и конкретных потребностей. Если вам нравится работать через интерфейс и вы хотите более интуитивно понятный и интегрированный опыт,Dify может быть более подходящим.
Если вы привыкли к настройке кода и хотите иметь точный контроль на уровне кода, LangChain подойдет больше.
В итоге,Dify выделяется архитектурными инновациями и гибкостью,Предоставляет широкий спектр точек взаимодействия для улучшения интеграции.,иLangchain则проходить其开发库и集серединаиз Решения по интеграции моделей становятся более рациональными.изметод。
ссылка:
https://docs.dify.ai/v/zh-hans