Бесшовная интеграция, мгновенный интеллект [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. `Рабочий процесс`: существуютBuild on Canvas и Test Powerful из 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
  • Начать дифференцирование
Язык кода: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
  • прекращениеназадзапускать(запускатьназад,Можно продолжитьиспользоватьollama 部署и Беги по-крупному Модель)
Язык кода: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 Deployment 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
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода