Доработка API на Python для чатбота
3369 UAHРаботающий чатбот на Python состоит из 2 частей - ядро и веб интерфейс для ввода текста вручную. Требуется к ядру сделать REST API, чтобы можно было запросы отправлять через API. Логику чатбота менять не требуется.
Есть ссылка по которой можно зайти через браузер и писать в бот. Есть доступ ssh к серверу, на котором бот работает, код запущен в виде образа Docker. Есть исходные коды, есть Docker образ. Результат нужен в виде исходных кодов плюс образ Docker. Предыдущий разработчик делал API, есть код, но его не проверяли в работе. Возможно он сразу запустится, возможно потребуются правки.
В предложении просьба указывать оценку в часах плюс стоимость часа для почасового контракта. И задавайте вопросы.
Документация по требуемому API:
Endpoint:
POST YYYY
Description: Exchange chat messages.
Security: Requires Bearer Token for authentication.
Request Schema ( ChatInput ):
• message : string (The message from the client)
• chat_session_id : string, Optional (Existing session ID, if available)
• sender_id : string (Unique identifier for the sender)
Response Schema ( ChatResponse ):
• chat_session_id : string (The unique session ID for the chat)
• response : string (The response message from the chatbot)
• file_url : string, Optional (URL of the file sent by the chatbot, if any)
• timestamp : datetime (Time when the response was generated)
• status_code : int (HTTP status code for the operation)
• sender_id : string (Unique identifier for the sender)
• receiver_id : string (Unique identifier for the receiver)
• transfer_to_agent : string (Whether the conversation should be transferred to a
live agent; values could be 'yes' or 'no')
• follow_up : string (Indicates whether this is a follow-up in an ongoing
conversation or a new interaction. Acceptable values are 'yes' for follow-up
conversations and 'no' for new conversations.)
Из исходных кодов, для информации:
requirements.txt:
openai
langchain
pypdf
langchain[docarray]
tiktoken
faiss-cpu
streamlit
streamlit-lottie
dev-requirements.txt:
flake8
autopep8
Dockerfile:
# Use an official Python runtime as a parent image
FROM python:3.11
# Set environment variables
ARG OPENAI_API_KEY
ENV OPENAI_API_KEY=$OPENAI_API_KEY
# Set the working directory in the container to /app
WORKDIR YYYY
# Add the current directory (i.e., everything) to the container's /app
ADD . YYYY
# Install any needed packages specified in requirements.txt
RUN pip install -r requirements.txt
# Change the working directory to /app/src
WORKDIR YYYY
# Make port YYYY available to the world outside this container (Streamlit uses this port)
EXPOSE YYYY
# Run main.py when the container launches, this assumes that main.py is in the /app/src directory
CMD streamlit run main.py
api.py:
from fastapi import FastAPI, HTTPException, Depends, Header
from pydantic import BaseModel
from typing import Optional
from uuid import uuid4
from SAA.chat_session import ChatSession
import datetime
app = FastAPI()
sessions = {}
class ChatInput(BaseModel):
message: str
chat_session_id: Optional[str] = None
sender_id: str
class ChatResponse(BaseModel):
chat_session_id: str
response: str
file_url: Optional[str]
timestamp: datetime.datetime
status_code: int
sender_id: str
receiver_id: str
transfer_to_agent: str
follow_up: str
app.get("YYYY")
def read_root():
return {"message": "Hello, World!"}
def get_token_header(token: str = Header(...)):
secure_token = "YYYY"
if token != secure_token:
raise HTTPException(status_code=400, detail="Invalid Token")
return token
app.post("YYYY")
async def chat(input: ChatInput, response_model=ChatResponse, token: str = Depends(get_token_header)):
timestamp = datetime.datetime.now()
status_code = 200 # default status
try:
session_id = input.chat_session_id
if session_id and session_id in sessions:
existing_session = sessions[session_id]
existing_session.add_message(input.message)
else:
session_id = str(uuid4())
sessions[session_id] = ChatSession("Hossam", input.message)
response_text = sessions[session_id].get_last_response().lstrip(
"Sales Agent:")
response_file_url = sessions[session_id].get_last_file_url()
except Exception as e:
status_code = YYYY
raise HTTPException(status_code=status_code, detail=str(e))
return {
"chat_session_id": session_id,
"response": response_text,
"file_url": response_file_url,
"timestamp": timestamp,
"status_code": status_code,
"sender_id": input.sender_id,
"receiver_id": "YYYY",
"transfer_to_agent": "no"
}
(некоторые символы удалил, FLH ругался)
Отзыв заказчика о сотрудничестве с Aleksandr B.
Доработка API на Python для чатботаРабота по python выполнена успешно.
Отзыв фрилансера о сотрудничестве с Sergey P
Доработка API на Python для чатботаОперативно сделали 2 задачи по проекту. Четкое ТЗ и быстрая обратная связь.
Рад буду сотрудничать и далее! 🙂
-
5 дней2246 UAH
4975 41 4 1 5 дней2246 UAHЕсть большой опыт работы с Телеграмм ботами и созданием персонального API на Python.
Напишите в лс, для более детальной информации.
-
3 дня3594 UAH
294 3 1 3 дня3594 UAHБольшой опыт парсинга (Selenium, BS4, API)
Большой опыт Python. Django, Flask и FastAPI
Работа с любыми базами данных (mySQL, PostgreSQL, Oracle, MongoDB) и типами файлов.
Чистый код соответствует всем инструкциям PEP8.
-
3 дня2201 UAH
310 3 дня2201 UAHЗдравствуйте! Готов приступить к заданию. Дайте, пожалуйста, данные по вашему сайту, чтобы я оценил работу.
Актуальные фриланс-проекты в категории Python
Создание Тик-ток фермы с генерацией дохода
27 000 UAH
в поиске человека, который может написать софт, для фермы тик ток, чтобы мы смогли генерировать трафик, получать доход. Ищем готовое решение с полным циклом. Python, Разработка ботов ∙ 1 день 21 час назад ∙ 15 ставок |
AI Commenting Platform для TikTok и Instagram.Цель проекта Разработать систему, которая позволяет управлять большим количеством аккаунтов TikTok и Instagram и автоматически публиковать релевантные комментарии под выбранными видео с использованием ИИ. Основной функционал1. Управление аккаунтами Необходимо реализовать… AI и машинное обучение, Python ∙ 3 дня 4 часа назад ∙ 22 ставки |
Построить модель классификации клиентов1. Есть данные клиентов в Mongo/SQL (примерно 20 000 записей с сырыми данными). 2. Необходимо на их основе построить фичи и модель классификации клиентов на поведенческие группы. 3. Проект выполнить на Python. AI и машинное обучение, Python ∙ 4 дня 22 часа назад ∙ 43 ставки |
ИТ Автоматизация ведения VAT-отчетности
10 000 UAH
Необходимо разработать систему для автоматизации переноса данных о продажах из CRM в бухгалтерскую систему Wafeq. Система должна импортировать банковские и платежные отчеты, автоматически сверять платежи с инвойсами, формировать инвойсы для VAT-отчетности и минимизировать ручную… AI и машинное обучение, Python ∙ 5 дней 4 часа назад ∙ 51 ставка |
Инструмент сверки счетов с банком, картами и бухгалтеромТехническое задание: инструмент сверки счетов с банком, картами и бухгалтеромОбщая цель Нужен локальный инструмент (скрипт/небольшое приложение на Python), который запускается вручную раз в 1-2 месяца на моём компьютере и делает сверку между: Счетами, которые я выставил клиентам… Python, Десктопные приложения ∙ 5 дней 16 часов назад ∙ 43 ставки |