Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция с нулевым кодированием и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция с нулевым кодированием и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.

Бесшовная интеграция, мгновенный интеллект: платформа больших моделей Dify-LLM, интеграция с нулевым кодированием и встраивание в сторонние системы, более 42 тысяч звезд являются свидетелями эксклюзивных интеллектуальных решений.

1. Введение.

1.1 Функциональные условия

Dify, ведущая в будущем платформа разработки приложений с открытым исходным кодом, основанная на модели большого языка (LLM), инновационным образом объединяет суть Backend as a Service (BaaS) и LLMOps, прокладывая путь разработчикам от творческих прототипов к быстрому пути к эффективному производству. Он предназначен для преодоления технических барьеров, позволяя пользователям с нетехническим образованием легко участвовать в разработке концепции и работе с данными приложений искусственного интеллекта, а также совместно формировать интеллектуальное будущее.

Dify включает в себя полный спектр технических краеугольных камней для создания приложений LLM, охватывающих все: от огромного выбора библиотек моделей (поддерживающих сотни моделей) до эффективного и интуитивно понятного интерфейса быстрой оркестровки, а также механизма извлечения улучшенной генерации (RAG) превосходного качества и надежности. Агентская структура. Этот интегрированный стек технологий не только значительно упрощает процесс разработки, но и дает разработчикам беспрецедентную гибкость и пространство для творчества. Благодаря гибкой функции оркестрации процессов, удобному интерфейсу и интерфейсу API Dify помогает разработчикам эффективно избегать дублирования работы, позволяя им сосредоточить свое драгоценное время и энергию на инновационном мышлении и углубленном изучении потребностей бизнеса.

Слово Dify происходит от Define + Modify, что означает определение и постоянное улучшение вашего приложения ИИ. Это сделано для вас (Сделайте это для вас).

  • Список основных функций:
Язык кода:txt
копировать
1. `Рабочий процесс`: существуют создание и тестирование холста, мощные AI Рабочий процесс,Воспользуйтесь следующими преимуществамивсефункции и многое другое。
Язык кода:txt
копировать
1. `Полная поддержка модели`: с сотнями проприетарных/открытых исходных кодов LLMs и бесшовная интеграция с десятками поставщиков логических выводов и автономными решениями, охватывающими GPT、Mistral、Llama3 и любой OpenAI API Совместимо с из Модель.
Язык кода:txt
копировать
1.  `Prompt IDE`: Интуитивно понятный интерфейс для подачи советов, сравнения производительности модели и добавления других функций (например, преобразования текста в речь) в приложения на основе чата.
Язык кода:txt
копировать
2.  `RAG Pipeline`: Обширный RAG Функции, охватывающие все: от приема документов до извлечения, поддерживающие все: от PDF、PPT Другие распространенные форматы документов, включая извлечение текста, поддерживаются «из коробки».
Язык кода:txt
копировать
1.  `Agent Агент`: Вы можете основать LLM вызов функции ReAct определение Агент и для Agent Добавлены встроенные или с момента определения инструменты. Диди для AI Agent Предоставляет более 50 встроенных инструментов, таких как Google Search, DALL·E, Stable. Diffusion и WolframAlpha ждать.
Язык кода:txt
копировать
1.  `LLMOps`: Отслеживайте и анализируйте журналы приложений и производительность с течением времени. Вы можете комментировать советы по непрерывному улучшению и наборы данных на основе производственных данных.
Язык кода:txt
копировать
1. `Серверная часть Служить`: все Dify из функций имеют соответствующие из API, чтобы вы могли легко Воля Dify Интегрируйте в свою собственную бизнес-логику середина. Сравнение функций
  • Схема рамы

1.2 Основные технические характеристики

  • Рассуждения о локальной модели Runtime поддерживать:Xinference(рекомендовать),OpenLLM,LocalAI,ChatGLM,Ollama,NVIDIA TIS
  • Характеристики агентского рабочего процесса:поддерживатьузел
Язык кода:txt
копировать
- LLM
- Поиск по базе знаний
- Классификация проблем
- условная ветвь
- выполнение кода
- Преобразование шаблона
- HTTP просить
- Особенности инструмента RAG:
Язык кода:txt
копировать
- Индексный режим      
    - ключевые слова
    - текстовый вектор
    - Зависит от LLM Вспомогательное из проблемы - сегментированный режим
- Метод поиска      
    - ключевые слова
    - Сопоставление текста по сходству
    - Гибридный поиск
    - Многократный отзыв
- Напомним, технология оптимизации      
    - использовать ReRank Поддержка баз данных модельных векторов: Qdrant, Weaviate, Zilliz/Milvus, Pgvector, Pgvector-rs, Chroma, OpenSearch, TiDB, Tencent Vector,Oracle

1.3 Облачные сервисы

Dify предоставляет облачные услуги для всех, и вы можете использовать все функциональные возможности Dify, не развертывая их самостоятельно. Чтобы использовать облачный сервис Dify, вам нужна учетная запись GitHub или Google.

  • Авторизоваться Облачный сервис Dify,Создайте или, чтобы присоединиться к существующему из Workspace.
  • настроить васизпоставщик моделей,илииспользоватьмы предоставляемизхостингпоставщик моделей
  • Пришло время создать приложение

1.4 Дополнительные ссылки на платформу LLM:

2. Развертывание версии сообщества

2.1 Развертывание Docker Compose (рекомендуется)

  • Для установки Docker обратитесь к следующей статье:
Язык кода:txt
копировать
- [Эта статья поможет вам начать работу с векторной базой данных milvus: включая dockerУстановить, milvusУстановитьиспользовать, attu Визуализация, полное руководство по запуску Milvus Проведен поиск по сходству векторов](https://blog.csdn.net/sinat_39620217/article/details/131847096) Докер раздела 2.2 ускорение ступицы
- t`Рекомендуется к просмотру:`[Прощание с DockerHub зеркалоскачать Дилемма: овладейте эффективными стратегиями загрузки и наслаждайтесь беспроблемной разработкой](https://blog.csdn.net/sinat_39620217/article/details/141106798)
- [Установить Docker](https://docs.docker.com/engine/install/)
- [Установить Docker Написать](https://docs.docker.com/compose/install/)克隆 Dify репозиторий кода
Язык кода:javascript
копировать
git clone https://github.com/langgenius/dify.git
  • Начать Dify
Язык кода:javascript
копировать
#Входить Dify Исходный код из docker каталоге, выполните команду запуска в один клик:
cd dify/docker
cp .env.example .env
docker compose up -d

Если в вашей системе установлен Docker Compose V2 вместо V1, используйте docker Compose вместо docker-compose. Проверьте, так ли это, с помощью версии $docker Compose. Подробнее читайте здесь. Если вы столкнулись с проблемой сбоя при извлечении, добавьте источник зеркала. Решения см. в рекомендуемых выше статьях.

  • Результаты развертывания отображаются:

Наконец, проверьте, все ли контейнеры работают правильно:

Язык кода:javascript
копировать
docker compose ps

Включает 3 бизнес-сервиса api/worker/web и 6 базовых компонентов weaviate/db/redis/nginx/ssrf_proxy/sandbox.

Язык кода:javascript
копировать
NAME                  IMAGE                              COMMAND                  SERVICE      CREATED          STATUS                    PORTS
docker-api-1          langgenius/dify-api:0.6.16         "/bin/bash /entrypoi…"   api          15 minutes ago   Up 15 minutes             5001/tcp
docker-db-1           postgres:15-alpine                 "docker-entrypoint.s…"   db           15 minutes ago   Up 15 minutes (healthy)   5432/tcp
docker-nginx-1        nginx:latest                       "sh -c 'cp /docker-e…"   nginx        15 minutes ago   Up 15 minutes             0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
docker-redis-1        redis:6-alpine                     "docker-entrypoint.s…"   redis        15 minutes ago   Up 15 minutes (healthy)   6379/tcp
docker-sandbox-1      langgenius/dify-sandbox:0.2.1      "/main"                  sandbox      15 minutes ago   Up 15 minutes             
docker-ssrf_proxy-1   ubuntu/squid:latest                "sh -c 'cp /docker-e…"   ssrf_proxy   15 minutes ago   Up 15 minutes             3128/tcp
docker-weaviate-1     semitechnologies/weaviate:1.19.0   "/bin/weaviate --hos…"   weaviate     15 minutes ago   Up 15 minutes             
docker-web-1          langgenius/dify-web:0.6.16         "/bin/sh ./entrypoin…"   web          15 minutes ago   Up 15 minutes             3000/tcp
docker-worker-1       langgenius/dify-api:0.6.16         "/bin/bash /entrypoi…"   worker       15 minutes ago   Up 15 minutes             5001/tcp
  • Обновить Dify

Войдите в каталог docker исходного кода diify и выполните по порядку следующие команды:

Язык кода:javascript
копировать
cd dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d

Синхронизируйте конфигурацию переменных среды (важно!)

  • если .env.example Файл содержит возобновление, пожалуйста, не забудьте одновременно изменить локальный файл. .env документ.
  • исследовать .env Все элементы конфигурации в файле. Убедитесь, что они соответствуют вашей фактической операционной среде. Возможно, вам придется .env.example Новые переменные в добавлены в .env документсередина,ивозобновлятьизмененныйизлюбое значение。
  • Посетите Дифи

После завершения развертывания докера введите команду sudo docker ps, чтобы увидеть запущенные контейнеры. В списке запущенных контейнеров вы можете увидеть, что есть контейнер nginx, а внешний доступ — порт 80. Это порт для внешнего доступа. доступ Ниже Мы проводим тестирование локального доступа.

Получите доступ к Dify, введя http://localhost в браузере. Локальное развертывание Dify можно использовать, посетив http://127.0.0.1:80.

10.80.2.195:80

Заполните все, что хотите, и войдите в интерфейс

  • Пользовательская конфигурация

Отредактируйте значения переменных среды в файле .env. Затем перезапустите Dify:

Язык кода:javascript
копировать
docker compose down
docker compose up -d

Полный набор переменных среды можно найти в docker/.env.example.

2.2 Развертывание локального исходного кода

  • Предварительные условия

Клонировать код Dify:

Язык кода:javascript
копировать
git clone https://github.com/langgenius/dify.git

Перед включением бизнес-сервисов необходимо развернуть PostgresSQL/Redis/Weaviate (если он недоступен локально), который можно запустить с помощью следующей команды:

Язык кода:javascript
копировать
cd docker
cp middleware.env.example middleware.env
docker compose -f docker-compose.middleware.yaml up -d
  • Служить Завершить развертывание
Язык кода:txt
копировать
- API интерфейс Служить
- Worker Асинхронное потребление очереди Служить Установить базовую среду
Служитьустройствозапускатьнуждаться Python 3.10.x。рекомендоватьиспользоватьanacondaУстановить,Справочная статья:
Язык кода:txt
копировать
- [LinuxиWindowsсистема Вниз:УстановитьAnaconda](https://blog.csdn.net/sinat_39620217/article/details/131675175)
- [Сверхпростое руководство по установке Anaconda](https://blog.csdn.net/sinat_39620217/article/details/115861876)
- ХОРОШОиспользовать[pyenv](https://github.com/pyenv/pyenv),`pyenv install 3.10`, переключитесь на “3.10” Python среда `pyenv global 3.10`Входить api Оглавление
Язык кода:javascript
копировать
cd api
  1. скопировать файл конфигурации переменной среды.
Язык кода:javascript
копировать
cp .env.example .env
  1. Создайте случайный ключ и замените значение SECRET_KEY в .env.
Язык кода:javascript
копировать
openssl rand -base64 42
sed -i 's/SECRET_KEY=.*/SECRET_KEY=<your_value>/' .env
  1. Установить пакеты зависимостей

Служба API Dify использует Poetry для управления зависимостями. Вы можете активировать среду, запустив поэтическую оболочку.

Язык кода:javascript
копировать
poetry env use 3.10
poetry install
  1. Выполните миграцию базы данных и перенесите структуру базы данных Воля на последнюю версию.
Язык кода:javascript
копировать
poetry shell
flask db upgrade
  1. запускать API Служить
Язык кода:javascript
копировать
flask run --host 0.0.0.0 --port=5001 --debug

Правильный вывод:

Язык кода:javascript
копировать
* Debug mode: on
INFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:5001
INFO:werkzeug:Press CTRL+C to quit
INFO:werkzeug: * Restarting with stat
WARNING:werkzeug: * Debugger is active!
INFO:werkzeug: * Debugger PIN: 695-801-919
  1. запускать Worker Служить

Используется для выполнения задач асинхронной очереди, таких как импорт файлов набора данных, обновление документов набора данных и другие асинхронные операции. Загрузка Linux/MacOS:

Язык кода:javascript
копировать
celery -A app.celery worker -P gevent -c 1 -Q dataset,generation,mail,ops_trace --loglevel INFO

При загрузке из системы Windows замените эту команду:

Язык кода:javascript
копировать
celery -A app.celery worker -P solo --without-gossip --without-mingle -Q dataset,generation,mail,ops_trace --loglevel INFO
Язык кода:javascript
копировать
 -------------- celery@TAKATOST.lan v5.2.7 (dawn-chorus)
--- ***** ----- 
-- ******* ---- macOS-10.16-x86_64-i386-64bit 2023-07-31 12:58:08
- *** --- * --- 
- ** ---------- [config]
- ** ---------- .> app:         app:0x7fb568572a10
- ** ---------- .> transport:   redis://:**@localhost:6379/1
- ** ---------- .> results:     postgresql://postgres:**@localhost:5432/dify
- *** --- * --- .> concurrency: 1 (gevent)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** ----- 
 -------------- [queues]
                .> dataset          exchange=dataset(direct) key=dataset
                .> generation       exchange=generation(direct) key=generation
                .> mail             exchange=mail(direct) key=mail

[tasks]
  . tasks.add_document_to_index_task.add_document_to_index_task
  . tasks.clean_dataset_task.clean_dataset_task
  . tasks.clean_document_task.clean_document_task
  . tasks.clean_notion_document_task.clean_notion_document_task
  . tasks.create_segment_to_index_task.create_segment_to_index_task
  . tasks.deal_dataset_vector_index_task.deal_dataset_vector_index_task
  . tasks.document_indexing_sync_task.document_indexing_sync_task
  . tasks.document_indexing_task.document_indexing_task
  . tasks.document_indexing_update_task.document_indexing_update_task
  . tasks.enable_segment_to_index_task.enable_segment_to_index_task
  . tasks.generate_conversation_summary_task.generate_conversation_summary_task
  . tasks.mail_invite_member_task.send_invite_member_mail_task
  . tasks.remove_document_from_index_task.remove_document_from_index_task
  . tasks.remove_segment_from_index_task.remove_segment_from_index_task
  . tasks.update_segment_index_task.update_segment_index_task
  . tasks.update_segment_keyword_index_task.update_segment_keyword_index_task

[2024-07-31 13:58:08,831: INFO/MainProcess] Connected to redis://:**@localhost:6379/1
[2024-07-31 13:58:08,840: INFO/MainProcess] mingle: searching for neighbors
[2024-07-31 13:58:09,873: INFO/MainProcess] mingle: all alone
[2024-07-31 13:58:09,886: INFO/MainProcess] pidbox: Connected to redis://:**@localhost:6379/1.
[2024-07-31 13:58:09,890: INFO/MainProcess] celery@TAKATOST.lan ready.

Развертывание передней страницы

Установить базовую среду

Web Необходимо для запуска клиентской службы. Node.js v18.x (LTS)NPM Версия 8.x.x или Yarn

Установите NodeJS + NPM.

Входить https://nodejs.org/en/download,Выберите соответствующую операциюсистемаиз v18.x Загрузите и установите указанный выше установочный пакет, рекомендуется stable Версия, уже принесли NPM。

  1. Входить web Оглавление,Установить пакеты зависимостей
Язык кода:javascript
копировать
cd web
npm install
  1. Настройка переменных среды。существоватьтекущий Оглавление Вниз创建документ .env.local и копировать.env.exampleсерединаиз контента. Измените значения этих переменных среды в соответствии с вашими потребностями:
Язык кода:javascript
копировать
#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=
  1. Код сборки,запускать web Служить
Язык кода:javascript
копировать
npm run build

npm run start
#or
yarn start
#or
pnpm start
  • Терминал выдаст следующую информацию:
Язык кода:javascript
копировать
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
warn  - You have enabled experimental feature (appDir) in next.config.js.
warn  - Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use at your own risk.
info  - Thank you for testing `appDir` please leave your feedback at https://nextjs.link/app-feedback

Посетите Дифи

Войдите в браузер http://localhost Посетите Дифи。доступ http://127.0.0.1:3000 Готов к использованию, развернутый локально Dify。

2.3 Запустите внешний Docker-контейнер отдельно

При отдельной разработке серверной части вам может понадобиться только исходный код для запуска внутренней службы, и вам не нужно создавать код внешнего интерфейса локально и запускать его. Таким образом, вы можете запустить службу внешнего интерфейса напрямую, вытащив образ Docker и запустив его. Контейнер Ниже приведены конкретные шаги:

  • Используйте образ DockerHub напрямую
Язык кода:javascript
копировать
docker run -it -p 3000:3000 -e CONSOLE_API_URL=http://127.0.0.1:5001 -e APP_API_URL=http://127.0.0.1:5001 langgenius/dify-web:latest

Создайте образ Docker из исходного кода.

  1. Создайте внешний образ
Язык кода:javascript
копировать
cd web && docker build . -t dify-web
  1. запускатьвнешний интерфейсзеркало
Язык кода:javascript
копировать
docker run -it -p 3000:3000 -e CONSOLE_API_URL=http://127.0.0.1:5001 -e APP_API_URL=http://127.0.0.1:5001 dify-web
  1. Когда имя домена консоли и Web APP Если доменные имена несовместимы, вы можете использовать их отдельно. CONSOLE_URL и APP_URL местныйдоступ http://127.0.0.1:3000

3. Локальная модель, использованная Олламой

Ollama Это платформа с открытым исходным кодом, предназначенная для простого развертывания и запуска больших языковых моделей (LLM) на локальных компьютерах. ,Это Ollama из Официальный адрес сайта:https://ollama.com/

  • Вот краткий обзор его основных возможностей и функций:
Язык кода:txt
копировать
1. Упрощенное развертывание: Оллама Цельсуществовать Чтобы упроститьсуществовать Docker контейнерсередина развертывает крупномасштабные процессы языковой моделиз, чтобы непрофессиональные пользователи могли легко управлять и запускать эти сложные измодели.
2. Легкий и масштабируемый: легкий фреймворк Ollama. Он требует небольшого объема ресурсов и обладает хорошей масштабируемостью, что позволяет пользователям настраивать конфигурацию по мере необходимости для адаптации к проектам разных размеров и аппаратных условий.
3. Поддержка API: обеспечивает краткое описание API позволяет разработчикам легко создавать, запускать и управлять крупномасштабными экземплярами языковой Модели, снижая технический порог взаимодействия с Моделью.
4. Предварительно созданная библиотека моделей: содержит коллекцию предварительно обученных крупномасштабных языковых моделей.,Пользователи могут напрямую выбирать эти модели для применения к своим приложениям.,Не нужно тренироваться или с нуля, чтобы найти источники моделей самостоятельно.

3.1 Установка в один клик

завиток: (77) ошибка установки сертификата проверки местоположения: CAfile: /data/usr/local/anaconda/ssl/cacert.pemCApath: none Причина ошибки: Путь адресации CAfile файла cacert.pem неверен, то есть файл не может быть найден по этому пути.

  • Решение:
  • найди свой cacert.pem Местоположение файла существует /путь/к/cacert.pem. Если у вас нет сертификата, вы можете сначала существовать https://curl.se/ca/cacert.pem скачать,держатьсуществоватькто-то Оглавлениесередина。
  • настройка переменных среды
Язык кода:javascript
копировать
export CURL_CA_BUNDLE=/path/to/cacert.pem
#Воля"/path/to/cacert.pem"заменятьдлятыиз证书документизфактический путь。
export CURL_CA_BUNDLE=/www/anaconda3/anaconda3/ssl/cacert.pem
  • Выполнить загрузку
Язык кода:javascript
копировать
curl -fsSL https://ollama.com/install.sh | sh

3.2 Ручная установка

ollamaсередина Вэньванг:https://ollama.fan/getting-started/linux/

  1. Загрузите двоичные файлы ollama: Ollama распространяется как автономные двоичные файлы. Загрузите его в каталог в вашем PATH:
Язык кода:javascript
копировать
sudo curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/bin/ollama

sudo chmod +x /usr/bin/ollama
  1. Воля Ollama добавить вдлязапускать Служить(рекомендовать):для Ollama Создайте пользователя:
Язык кода:javascript
копировать
sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollama

3. Создайте служебный файл в /etc/systemd/system/ollama.service:

Язык кода:javascript
копировать
#vim ollama.service 

[Unit]

Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3

[Install]
WantedBy=default.target
  1. Затемзапускать Служить:
Язык кода:javascript
копировать
sudo systemctl enable ollama
  1. запускать Ollama¶ использовать systemd запускать Ollama:
Язык кода:javascript
копировать
sudo systemctl start ollama
  1. возобновить, просмотреть журнал
Язык кода:javascript
копировать
#Беги еще раз
sudo curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/bin/ollama
sudo chmod +x /usr/bin/ollama

#для просмотра как запустить Служитьбегатьиз Ollama из журнала, пожалуйста, запустите:
journalctl -u ollama
  1. Шаг 7: Закрыть Ollama Служить
Язык кода:javascript
копировать
#closeollamaСлужить
остановка службы оллама

3.3 Установите Ollama в автономном режиме во внутренней сети Linux

  1. Посмотреть модель Служить CPUиз
Язык кода:javascript
копировать
Команда ##Просмотр модели процессора Linuxсистемы,Моя модель процессора — x86_64.
ЛСКПУ
  1. Шаг 2. Загрузите установочный пакет Ollama в соответствии с моделью процессора и сохраните его в каталоге.

Адрес загрузки: https://github.com/ollama/ollama/releases/

Язык кода:javascript
копировать
#x86_64 Выбор процессора скачатьollama-linux-amd64
#aarch64|arm64 Выбор процессора скачатьollama-linux-arm64
Язык кода:javascript
копировать
#иметьnetмашинаскачать приходит и всё то же самое
wget https://ollama.com/download/ollama-linux-amd64

Загрузите на автономный сервер: /usr/bin/ollama ollama — это загруженный вами файл ollama-linux-amd64. Он был переименован (mv), остальные шаги такие же.

3.4 Изменить путь хранения

Модели Олламы по умолчанию хранятся в:

  • macOS: ~/.ollama/models
  • Linux: /usr/share/ollama/.ollama/models
  • Windows: C:\Users<username>.ollama\models

Если Ollama работает как служба systemd, переменную среды systemctl следует установить с помощью следующей команды:

  1. Позвонив редактировать systemd Служитьsystemctl edit ollama.service。этот Воляоткрытьредактироватьустройство。
  2. Среда для каждой переменной среды,Добавьте строку Сервис в раздел существования:

Добавьте 2 строки непосредственно в «/etc/systemd/system/ollama.service»:

Язык кода:javascript
копировать
[Service]
Environment="OLLAMA_HOST=0.0.0.0:7861"
Environment="OLLAMA_MODELS=/www/algorithm/LLM_model/models"
  1. Сохраняем и выходим.
  2. Перезагрузите systemd и переустановите Ollama:
Язык кода:javascript
копировать
systemctl restart ollama

Справочная ссылка:https://github.com/ollama/ollama/blob/main/docs/faq.md

  1. использовать systemd запускать Ollama:
Язык кода:javascript
копировать
sudo systemctl start ollama
  1. прекращение

Прекращение (большая модель, загруженная ollama, перестанет занимать видеопамять. В это время ollama находится в отключенном состоянии, операции развертывания и выполнения завершатся неудачей, и будет сообщено об ошибке:

Ошибка: не удалось подключиться к приложению ollama. Оно запущено, прежде чем его можно будет развернуть и запустить?

Язык кода:javascript
копировать
systemctl stop ollama.service
  • прекращениеназадзапускать(запускатьназад,За ним может следить использоватьusellama развертыватьи Беги по-крупному Модель)
Язык кода:javascript
копировать
systemctl start ollama.service

3.5 Запуск LLM

  • скачать Модель
Язык кода:javascript
копировать
ollama pull llama3.1
ollama pull qwen2
  • Беги по-крупному Модель
Язык кода:javascript
копировать
ollama run llama3.1
ollama run qwen2
  • Проверьте, распознана ли большая Модель: ollama list,еслиуспех, вы увидите большую Модель
Язык кода:javascript
копировать
ollama list
NAME            ID              SIZE    MODIFIED    
qwen2:latest    e0d4e1163c58    4.4 GB  3 hours ago
  • использовать Долженollama ps命令查看текущий已加载приезжать Памятьсерединаиз Модель。
Язык кода:javascript
копировать
NAME            ID              SIZE    PROCESSOR       UNTIL              
qwen2:latest    e0d4e1163c58    5.7 GB  100% GPU        3 minutes from now
  • nvidia-smiView
Язык кода:javascript
копировать
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.86.10              Driver Version: 535.86.10    CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Tesla V100-SXM2-32GB           On  | 00000000:00:08.0 Off |                    0 |
| N/A   35C    P0              56W / 300W |   5404MiB / 32768MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A   3062036      C   ...unners/cuda_v11/ollama_llama_server     5402MiB |
+---------------------------------------------------------------------------------------+
  • После запуска мы можем проверить, доступен ли он:
Язык кода:javascript
копировать
curl http://10.80.2.195:7861/api/chat -d '{
  "model": "llama3.1",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}'

3.6 Еще другие конфигурации

Оллама может настраивать переменные среды.

  • OLLAMA_HOST:этот个变量определение ПонятноOllamaмониториз网络интерфейс。проходитьнастраиватьOLLAMA_HOST=0.0.0.0,мы можем позволитьOllamaмониторвсе Доступныйиз网络интерфейс,Таким образом обеспечивая доступ к внешней сети.
  • OLLAMA_MODELS:этот个变量обозначение Понятно Модельзеркалоизпуть хранения。проходитьнастраиватьOLLAMA_MODELS=F:\OllamaCache,Мы можем Воля Модельзеркало хранить существующие диски E,Избавьтесь от проблемы нехватки места на диске C.
  • OLLAMA_KEEP_ALIVE:этот个变量控制Модельсуществовать Памятьсерединаизвремя выживания。настраиватьOLLAMA_KEEP_ALIVE=24hмогу позволить Модельсуществовать Памятьсередина Держать24Час,Увеличьте скорость доступа.
  • OLLAMA_PORT:этот个变量允许我们ИзменятьOllamaиз Порт по умолчанию。Например,настраиватьOLLAMA_PORT=8080Может Воля Служитьпорт по умолчаниюиз11434Изменятьдля8080。
  • OLLAMA_NUM_PARALLEL:этот个变量决定ПонятноOllamaМожет同时处理изпользовательпроситьколичество。настраиватьOLLAMA_NUM_PARALLEL=4могу позволитьOllama同时处理两个и发просить。
  • OLLAMA_MAX_LOADED_MODELS:этот个变量限制ПонятноOllamaМожет同时加载из Модельколичество。настраиватьOLLAMA_MAX_LOADED_MODELS=4Может确保система Ресурсы распределяются правильно。

Environment="OLLAMA_PORT=9380" не работает.

  • этот样обозначение:Environment="OLLAMA_HOST=0.0.0.0:7861"
  • обозначение GPU Их много на местном уровне Графический процессор, как использовать изображениеиз GPU бежать Ollama? Создайте следующий файл конфигурации в Linux и настройте переменные среды. CUDA_VISIBLE_DEVICES Приходите на символический забег Ollama из графический процессор, затем перезапустите Ollama Служить [Номер теста начинается с 0 или с 1. Он должен начинаться с 0].
Язык кода:javascript
копировать
vim /etc/systemd/system/ollama.service
[Service]
Environment="CUDA_VISIBLE_DEVICES=0,1"

3.7 Общие команды Олламы

  1. Перезапустить олламу
Язык кода:javascript
копировать
systemctl daemon-reload
systemctl restart ollama
  1. Перезапустить олламу Служить

ubuntu/debian

Язык кода:javascript
копировать
sudo apt update
sudo apt install lsof
stop ollama
lsof -i :11434
kill <PID>
ollama serve
  • Ubuntu
Язык кода:javascript
копировать
sudo apt update
sudo apt install lsof
stop ollama
lsof -i :11434
kill <PID>
ollama serve
  1. Подтвердите статус порта Служить:
Язык кода:javascript
копировать
netstat -tulpn | grep 11434
  1. Конфигурация Служить

для Включите внешнюю сетевую среду, чтобыдоступприезжать Служить,Требуется для настройки HOST.

Откройте файл конфигурации:

Язык кода:javascript
копировать
vim /etc/systemd/system/ollama.service

Измените переменную Environment в зависимости от ситуации:

В серверной среде:

Язык кода:javascript
копировать
Environment="OLLAMA_HOST=0.0.0.0:11434"

В среде виртуальной машины:

Язык кода:javascript
копировать
Environment="OLLAMA_HOST=Служить Внутренний IP-адрес: 11434"

3.8 Удаление Олламы

Если вы решите, что вам больше не нужен Ollama, вы можете полностью удалить его из своей системы, выполнив следующие действия:

(1) Остановите и отключите службу:

Язык кода:javascript
копировать
sudo systemctl stop ollama
sudo systemctl disable ollama

(2) Удалите служебные файлы и двоичные файлы Ollama:

Язык кода:javascript
копировать
sudo rm /etc/systemd/system/ollama.service 
sudo rm $(which ollama)

(3) Очистите пользователей и группы Ollama:

Язык кода:javascript
копировать
sudo rm -r /usr/share/ollama
sudo userdel ollama
sudo groupdel ollama

С помощью описанных выше шагов вы сможете не только успешно установить и настроить Ollama на платформе Linux, но также гибко обновлять и удалять ее.

4. Настройте LLM+Dify

  • Подтвердите статус порта Служить:
Язык кода:javascript
копировать
netstat -tulnp | grep ollama
#netstat -tulpn | grep 11434
  • Сообщение: «Ошибка: не удалось подключиться к приложению ollama, оно запущено?»

Справочная ссылка:https://stackoverflow.com/questions/78437376/run-ollama-run-llama3-in-colab-raise-err-error-could-not-connect-to-ollama

Файл /etc/systemd/system/ollama.service:

Язык кода:javascript
копировать
[Service]
ExecStart=/usr/local/bin/ollama serve
Environment="OLLAMA_HOST=0.0.0.0:7861"
Environment="OLLAMA_KEEP_ALIVE=-1"
  • запустить команду
Язык кода:javascript
копировать
export OLLAMA_HOST=0.0.0.0:7861
ollama list
ollama run llama3.1

#Вы также можете добавить его непосредственно в переменные среды
vim ~/.bashrc 
source ~/.bashrc

существовать настраивать > поставщик моделей > Ollama Заполнять:

  • Модельимя:llama3.1
  • База URL:http://<your-ollama-endpoint-domain>:11434
Язык кода:txt
копировать
- Здесь необходимо заполнить из доступ к из Ollama Служитьадрес。
- нравиться Dify для docker Развертывание, рекомендуется заливать в локальную сеть IP Адрес, например: `http://10.80.2.195:11434` или docker Хозяин IP Адрес, например: `http://172.17.0.1:11434`.
- нравитьсядляместный源码развертывать,заполняемый `http://localhost:11434`. Жанр модели: Диалог
  • Длина контекста модели: 4096
Язык кода:txt
копировать
- Моделиз максимальной длины контекста,нравиться不清楚заполняемый默认值 4096. максимум token Верхний предел: 4096
Язык кода:txt
копировать
- Модель Вернуть контентизMAX token количество,нравиться Модель Никаких особых инструкций,тогда его можно сравнить с Модель上Вниз文长度Держать一致。липоддерживать Видение: Да
Язык кода:txt
копировать
- Если Модель поддерживает понимание изображения (мультимодальная), отметьте этот пункт, например лава. Нажмите "держать" После проверки вы можете применить Модель.
  • Embedding Метод доступа к модели и LLM похожий,Только Воля Модель Изменение типадля Text Embedding Вот и все.
  • еслииспользоватьDocker развертывание DifyиOllama, вы можете столкнуться со следующей ошибкой:
Язык кода:javascript
копировать
httpconnectionpool(host=127.0.0.1, port=11434): max retries exceeded with url:/cpi/chat (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f8562812c20>: fail to establish a new connection:[Errno 111] Connection refused'))

httpconnectionpool(host=localhost, port=11434): max retries exceeded with url:/cpi/chat (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f8562812c20>: fail to establish a new connection:[Errno 111] Connection refused'))

Эта ошибка связана с тем, что Docker контейнер Не могущийдоступ Ollama Служить. локальный хост Обычно относится к самому контейнеру, а не к хосту или другому контейнеру. Для решения этой задачи вам понадобится Воля Ollama Служба доступна в сети.

4.1. Сравнение нескольких моделей.

Как и при развертывании одной модели, просто настройте и добавьте ее снова.

  • Следует отметить, что это после добавления новой конфигурации из Модель.,Необходимо обновить веб-страницу diify.,Просто обновите веб-страницу напрямую,Недавно добавленная из Модель будет загружена.
  • Посмотреть потребление ресурсов Модели можно после вызова
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose