Цель: писать уникальные тексты большого объёма, например, 5000 символов
openAI
nano openai_text.py
import openai
# Вставьте сюда ваш API-ключ
openai.api_key = 'your-api-key'
# Подготовка запроса
prompt = """
Напиши SEO-текст объёмом 5000 символов (без пробелов) по ключевым словам:
1) асфальтировка дворов;
2) укладка асфальта;
3) асфальтирование в Москве и области;
4) цена на асфальтирование.
Структура:
- Вовлекающее вступление
- Несколько подзаголовков
- Нумерованный или маркированный список (хотя бы один)
- Употреби ключи равномерно и естественно
- В конце — призыв к действию
- Язык — простой, разговорный, продающий
"""
# Запрос к модели
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
temperature=0.7,
max_tokens=2500 # Примерно соответствует ~5000 символам без пробелов
)
# Вывод результата
text = response['choices'][0]['message']['content']
print(text)
💡 Если текст выходит слишком длинным/коротким, можно подогнать max_tokens, разбить генерацию на части, или считать длину текста в символах и дозапрашивать дополнение.
Использование локальной модели (без интернета и API)
🚀 Популярные локальные модели:
Модель | Где использовать | Требования |
---|---|---|
GPT4All | Локально на ПК | CPU/GPU, RAM 8+ ГБ |
LLama.cpp (на базе LLaMA 2) | Через терминал | Быстро работает на CPU |
KoboldAI + Pygmalion/Mistral | Через браузер | Поддержка GPU желательно |
TextGen WebUI (на базе Mistral, LLaMA 2, Zephyr и др.) | Много UI-опций |
Запуск GPT4All:
git clone https://github.com/nomic-ai/gpt4all.git
cd gpt4all
pip install -r requirements.txt
python gpt4all.py
Смотрим, какая локальная версия Питон уже есть: допустим, удаляем старую и пересобираем
ls /usr/local/lib/
rm -rf /usr/local/lib/python3.10
rm -f /usr/local/bin/python3.10 /usr/local/bin/pip3.10
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz
sudo tar xzf Python-3.10.13.tgz
cd Python-3.10.13
Очистить предыдущую сборку: make clean
yum install gcc openssl-devel bzip2-devel libffi-devel
openssl version
Python requires OpenSSL 1.1.1 or newer
🧩 Проблема:
Python 3.10 не может использовать системный OpenSSL CentOS 7, потому что он слишком старый.
Собираем и устанавливаем OpenSSL 1.1.1+ вручную в /usr/local/openssl, и пересобираем Python 3.10.13 с указанием на новую версию
🧱 0-й ШАГ: Подготовка
ещё понадобится GCC, который требует make
> 4.x
Поэтому сразу всё скомпилируем в одном make v4
make --version cd /usr/src sudo curl -O https://ftp.gnu.org/gnu/make/make-4.4.tar.gz sudo tar -xzf make-4.4.tar.gz cd make-4.4 ./configure --prefix=/opt/make-4.4 make -j$(nproc) sudo make install ln -s /opt/make-4.4/bin/make /usr/bin/make4 make4 --version
🔽 1. Скачаем и соберём OpenSSL 1.1.1:
🧪 2. Убедимся, что новая OpenSSL доступна:
🛠 3. Пересобериаем Python 3.10.13 с указанием OpenSSL:
✅ 4. Проверка
Решение: сообщить системе, где искать библиотеки OpenSSL
🟢 Вариант 1: Временный (на текущую сессию)
🔵 Вариант 2: Постоянный (для всей системы)
Добавьте путь к библиотекам /etc/ld.so.conf.d/openssl-1.1.1.conf:
Теперь можно проверять:
/usr/local/openssl/bin/openssl version
⏭ После этого — пересобирайте Python 3.10.13, как обсуждали:
Как работать с локальной верисей Питон?
Обращение к pip: /usr/local/bin/pip3.10
Обращение к python: /usr/local/bin/python3.10
Установка пакетов: /usr/local/bin/pip3.10 install requests flask
make -j
— это значит "собирай как можно быстрее, без ограничения потоков" → может перегрузить систему. Лучше всего использовать:- make -j$(nproc)
— безопасно и эффективно. - или вручную:make -j4
— если хочешь контролировать.
make -j$(nproc)
= "Запустит сборку во столько потоков, сколько ядер у процессора" — это быстро, эффективно и безопасно.
🚀 Краткие советы по теме:
🔧 Сборка в фоне с логом:
make -j$(nproc) > build.log 2>&1 & tail -f build.log
Флаг -k
позволяет не останавливать всё при первой ошибке, а продолжать сборку других целей.
При работе с GPT4All требуется glibc 2.32
, а CentOS 7 (или RHEL 7) использует glibc 2.17
❗ Проблема: GLIBC_2.32 not found
🔥 Почему это критично?
glibc — базовая системная библиотека. Обновить её прямо в CentOS 7 — опасно: можно сломать всю систему, потому что от неё зависит ядро, yum
, SSH и всё остальное.
✅ Возможные решения
🟨Вариант 1: Использовать другую модель (без .so
)
использовать текстовую модель через transformers
или text-generation-webui
, которые не требуют .so
:
pip install transformers torch python3.10 -c " from transformers import pipeline generator = pipeline('text-generation', model='distilgpt2') print(generator('Асфальтировка дворов в Москве — ', max_length=200)[0]['generated_text']) "
🟥 Вариант 2: Скомпилировать glibc 2.32 вручную
Можно собрать glibc
вручную в /opt/glibc-2.32
и запускать через переменную окружения, но это крайне опасно и нестабильно. Подходит только для опытных линуксоидов и тестов в песочнице.
CentOS 7 по умолчанию часто поставляется с очень старыми сборщиками (например, gcc 4.8.x
), а для glibc 2.32
нужен gcc >= 7.1.
Проверим версию GCC
gcc --version
📥 ШАГ 1: Скачать исходники GCC 11.4
cd /usr/src
sudo wget https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz
sudo tar -xzf gcc-11.4.0.tar.gz
cd gcc-11.4.0
📦 ШАГ 2: Скачай зависимости GCC
./contrib/download_prerequisites
Это подтянет gmp
, mpfr
, mpc
нужных версий в папку.
📁 ШАГ 3: Собрать в отдельную папку
mkdir ../gcc-11-build
cd ../gcc-11-build
Сконфигурировать:
../gcc-11.4.0/configure \ --prefix=/opt/gcc-11.4 \ --enable-languages=c,c++ \ --disable-multilib
Сборка:
make4 -j$(nproc)
💡 Это может занять 30–60 минут.
Затем установка:
make4 install
✅ ШАГ 4: Проверка
Добавь gcc в PATH
(временно):
export PATH=/opt/gcc-11.4/bin:$PATH export LD_LIBRARY_PATH=/opt/gcc-11.4/lib64:$LD_LIBRARY_PATH
Проверь:
gcc --version # Должно показать: gcc (GCC) 11.4.0
strings /opt/gcc-11.4/lib64/libstdc++.so.6 | grep GLIBCXX_
GCC 9.5
wget https://ftp.gnu.org/gnu/gcc/gcc-9.5.0/gcc-9.5.0.tar.gz
tar -xzvf gcc-9.5.0.tar.gz
cd gcc-9.5.0
mkdir ../gcc-9-build
cd ../gcc-9-build
../gcc-9.5.0/configure \
--prefix=/opt/gcc-9.5 \
--enable-languages=c,c++ \
--disable-multilib
make4 -j$(nproc)
make4 install
export PATH=/opt/gcc-9.5/bin:$PATH
export LD_LIBRARY_PATH=/opt/gcc-9.5/lib64:$LD_LIBRARY_PATH
gcc --version
strings /opt/gcc-9.5/lib64/libstdc++.so.6 | grep GLIBCXX_
GLIBCXX_3.4
GLIBCXX_3.4.1
..................................
GLIBCXX_3.4.28
Установка GLIBC 2.32
cd /usr/src
wget https://mirror2.evolution-host.com/gnu/glibc/glibc-2.32.tar.gz
tar xzvf glibc-2.32.tar.gz
cd glibc-2.32
mkdir build
cd build
export PYTHON=/usr/local/bin/python3.10
export MAKE=/opt/make-4.4/bin/make
../glibc-2.32/configure \
--prefix=/opt/glibc2.32 \
--disable-werror \
CC="/opt/gcc-9.5/bin/gcc" \
CXX="/opt/gcc-9.5/bin/g++" \
CFLAGS="-O2" \
CXXFLAGS="-O2"
/opt/glibc2.32/lib/libc.so.6GNU C Library (GNU libc) release release version 2.32.
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 9.5.0.
Для работы GPT4ALL нужно:
-
GCC - libstdc++.so.6: version `GLIBCXX_3.4.29'
-
GLIBC - libc.so.6: version `GLIBC_2.34'
GPT4All
/REPOSITORY/python_apps/gpt4all
cd /REPOSITORY
mkdir python_apps
git clone https://github.com/nomic-ai/gpt4all.git
cd gpt4all
cat > requirements.txt <<EOF
> transformers
> torch
> EOF
pip3.10 install -r requirements.txt
cat > test_gtp4all.py <<EOF
> from gpt4all import GPT4All
> print("✅ It works!")
> EOF
python3.10 test_gpt4all.py
🛠 Create the wrapper script
sudo tee /usr/local/bin/python-gpt > /dev/null << 'EOF' #!/bin/bash exec /opt/glibc-2.34/lib/ld-linux-x86-64.so.2 \ --library-path /opt/glibc-2.34/lib:/opt/gcc-11.4/lib64:/lib64:/usr/lib64:/usr/local/lib \ /usr/local/bin/python3.10 "$@" EOF sudo chmod +x /usr/local/bin/python-gpt
nano chat_gpt.py
cd /REPOSITORY/python_apps
git clone --recurse-submodules https://github.com/nomic-ai/gpt4all.git
cd gpt4all
cd gpt4all-backend
mkdir build
cd build
CC=/opt/gcc-13.3/bin/gcc CXX=/opt/gcc-13.3/bin/g++ cmake .. -DLLMODEL_CUDA=OFF -DLLMODEL_KOMPUTE=OFF -DCMAKE_CXX_STANDARD=23
LD_LIBRARY_PATH=/opt/gcc-13.3/lib64 cmake --build . --config Release
cd ../..
wget https://huggingface.co/TheBloke/CapybaraHermes-2.5-Mistral-7B-GGUF/resol... -P models/
nano /usr/local/bin/python-gpt
#!/bin/bash
exec /opt/glibc2.34/lib/ld-linux-x86-64.so.2 \
--library-path /opt/glibc2.34/lib:/opt/gcc-13.3/lib64:/lib64:/usr/lib64:/usr/local/lib \
/usr/local/bin/python3.10 "$@"
nano llama_chat.py
from llama_cpp import Llama
llm = Llama(
model_path="models/capybarahermes-2.5-mistral-7b.Q4_0.gguf",
n_ctx=4096,
n_threads=5
)
print("CapybaraHermes Chat (llama-cpp):")
history = ""
while True:
user_input = input("You: ")
if user_input.lower() in ("exit", "quit"):
break
history += f"User: {user_input}\nAssistant:"
output = llm(history, max_tokens=200, stop=["User:", "Assistant:"])
reply = output["choices"][0]["text"].strip()
print("AI:", reply)
history += f" {reply}\n"
sudo tee /usr/local/bin/python-gpt > /dev/null << 'EOF exec /opt/glibc-2.34/lib/ld-linux-x86-64.so.2 \
--library-path /opt/glibc-2.34/lib:/lib64:/usr/lib64:/usr/local/lib \
/usr/local/bin/python3.10 "$@"
EOF
chmod +x /usr/local/bin/python-gpt
python-gpt llama_chat.py
Build Llama
new cURL
cd /usr/src
8751 May 29 22:31:40 wget https://curl.se/download/curl-7.88.1.tar.gz
8752 May 29 22:31:46 tar xzvf curl-7.88.1.tar.gz
8753 May 29 22:31:52 cd curl-7.88.1
./configure --prefix=/opt/curl-7.8 \
CC="/opt/gcc-13.3/bin/gcc" CXX="/opt/gcc-13.3/bin/g++" \
--with-ssl=/usr/local/openssl
cd /REPOSITORY
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
mkdir build
cd build
export OPENSSL_ROOT_DIR=/usr/local/openssl
CC=/opt/gcc-13.3/bin/gcc CXX=/opt/gcc-13.3/bin/g++ cmake ..
CURL=/opt/curl-7.8/bin/curl CC=/opt/gcc-13.3/bin/gcc CXX=/opt/gcc-13.3/bin/g++ cmake ..
cmake -DCURL_ROOT=/opt/curl-7.8 -DCMAKE_C_COMPILER=/opt/gcc-13.3/bin/gcc -DCMAKE_CXX_COMPILER=/opt/gcc-13.3/bin/g++ ..
LD_LIBRARY_PATH=/opt/gcc-13.3/lib64 make -j$(nproc)
LD_LIBRARY_PATH=/opt/gcc-13.3/lib64 cmake --build .
Test: ls -lh bin/llama-cli /opt/glibc2.34/lib/ld-linux-x86-64.so.2 --library-path /opt/glibc2.34/lib:/opt/gcc-13.3/lib64:/usr/local/openssl/lib:/usr/lib64 ./bin/llama-cli --help
cd /REPOSITORY/llama.cpp
cat << 'EOF' > llama-run
#!/bin/bash
/opt/glibc2.34/lib/ld-linux-x86-64.so.2 \
--library-path /opt/glibc2.34/lib:/opt/gcc-13.3/lib64:/usr/local/openssl/lib:/usr/lib64 \
./build/bin/llama-cli "$@"
EOF
chmod +x llama-run
./llama-run --help
nano setup_mistral.py
from huggingface_hub import login
login(token="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")
from huggingface_hub import snapshot_download
from pathlib import Path
mistral_models_path = Path.home().joinpath('mistral_models', '7B-Instruct-v0.3')
mistral_models_path.mkdir(parents=True, exist_ok=True)
snapshot_download(repo_id="mistralai/Mistral-7B-Instruct-v0.3", allow_patterns=["params.json", "consolidated.safetensors", "tokenizer.model.v3"], local_dir=mistral_models_path)
python-gpt setup_mistral.py
cd /root/mistral_models/7B-Instruct-v0.3
curl -L -H "Authorization: Bearer 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" \
https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.3/resolve/main/t... \
-o tokenizer.json
pip3.10 install --upgrade transformers
python-gpt /REPOSITORY/llama.cpp/gguf-py/scripts/gguf_info.py /REPOSITORY/python_apps/gpt4all/models/mistral-7b-instruct-v0.3.gguf
Цена такой работы:
Ценообразование зависит от:
сложности задачи (структура, ключи, стиль),
опыта исполнителя,
способа генерации (ручной копирайтинг или AI + доработка).
📌 Примерные расценки:
Способ | Средняя цена за 1000 зн. без пробелов | Итого за 5000 зн. | Комментарий |
---|---|---|---|
AI + правка вручную | 100–200 ₽ | 500–1000 ₽ | быстро, эффективно |
Профессиональный копирайтер | 300–500 ₽ | 1500–2500 ₽ | ручная работа, продающий стиль |
SEO-агентство | 500–700 ₽ | 2500–3500 ₽ | включает анализ и оптимизацию |
🎯 Что можно предложить клиенту
Генерация текста + редактура
Оптимизация по SEO
Размещение на сайте (если требуется)
Консультация по продвижению