Суть в следующем:
- Пишем какие-то методы на python с помощью нейросетей
- Разворачиваем API на python
- В результате будем посылать запросы вроде http://127.0.0.1:8000/upper/?name={-Variable.name-}, а на выходе получать результат в переменную
Пишем код в deepseek
Я решил продемонстрировать все на простом примере. У нас будет программа, где мы на входе подаем pdf файл, а на выходе получаем запароленный pdf.
Иду в deepseek и пишу промпт: “с помощью библиотеки PyPDF2 напиши функцию, которая будет добавлять пароль на pdf файл”
Открываю vs code, открываю терминал (вверху Terminal -> New Terminal) и устанавливаю библиотеку
pip install PyPDF2
Создаем файл test.py (правая кнопка мыши по левой панели -> new file) и вставляем код:
Python:
from PyPDF2 import PdfReader, PdfWriter
def add_password_to_pdf(input_pdf_path: str, output_pdf_path: str, password: str) -> None:
"""Ваша функция для добавления пароля к PDF"""
reader = PdfReader(input_pdf_path)
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
writer.encrypt(password)
with open(output_pdf_path, "wb") as f:
writer.write(f)
add_password_to_pdf('Python.pdf', 'output.pdf', '123')
python [URL='http://test.py?roistat_visit=1569852']test.py[/URL]
Как убедились, что все работает, идем поднимать API.
Реализуем API
Использовать будем Fast API.
Устанавливаем библиотеки
pip install fastapi uvicorn PyPDF2 python-multipart
Давайте сначала разберемся на простом примере. Создаем файл testing.py и пишем свой первый код:
Python:
from fastapi import FastAPI
from fastapi.responses import PlainTextResponse
app = FastAPI()
# вот эту часть меняем, остальное просто копируем
@app.get("/upper/", response_class=PlainTextResponse)
async def upper_text(name: str):
return name.upper()
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
Теперь идем в зеннопостер, создаем кубик GET
Вот и все! Теперь мы можем посылать GET запрос, передавая какое-то значение, а на выходе получаю строку в верхнем регистре.
А как нам использовать написанную ранее add_password_to_pdf? На самом деле все, что нам нужно - это вместо return name.upper() вызвать add_password_to_pdf().
Код:
Python:
from fastapi import FastAPI
from fastapi.responses import PlainTextResponse
from PyPDF2 import PdfReader, PdfWriter
def add_password_to_pdf(input_pdf_path: str, output_pdf_path: str, password: str) -> None:
"""Ваша функция для добавления пароля к PDF"""
reader = PdfReader(input_pdf_path)
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
writer.encrypt(password)
with open(output_pdf_path, "wb") as f:
writer.write(f)
app = FastAPI()
# вот эту часть меняем, остальное просто копируем
@app.get("/upper/", response_class=PlainTextResponse)
async def upper_text(input: str, output: str, password: str):
add_password_to_pdf(input, output, password)
return "ok"
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
Перезапускаем сервер (сначала ctrl+C, чтобы остановить, а затем как обычно python testing.py) , пробуем и все работает.
Это если у вас и python и ZennoPoster работают на одном ПК. Если они на разных ПК, то вам нужно сначала из зенки отправить файл на сервер -> там его принять -> создать файл с паролем -> отправить обратно в зеннопостер -> сохранить файл на пк через зеннопостер. Тут мы будем уже использовать POST запрос. Расписывать долго, образец есть в приложенном шаблоне.
На этом все. Надеюсь, статья была полезна. Если что непонятно заснял еще видео, где я еще раз покажу то, что расписал тут уже на примере библиотеки.
Вложения
-
3,8 МБ Просмотры: 2
Последнее редактирование модератором: