Доработка API на Python для чатбота
3323 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 дней2215 UAH
4987 41 4 1 5 дней2215 UAHЕсть большой опыт работы с Телеграмм ботами и созданием персонального API на Python.
Напишите в лс, для более детальной информации.
-
3 дня3544 UAH
294 3 1 3 дня3544 UAHБольшой опыт парсинга (Selenium, BS4, API)
Большой опыт Python. Django, Flask и FastAPI
Работа с любыми базами данных (mySQL, PostgreSQL, Oracle, MongoDB) и типами файлов.
Чистый код соответствует всем инструкциям PEP8.
-
3 дня2171 UAH
310 3 дня2171 UAHЗдравствуйте! Готов приступить к заданию. Дайте, пожалуйста, данные по вашему сайту, чтобы я оценил работу.
Актуальные фриланс-проекты в категории Python
Разработка программного обеспечения с ИИНеобходимо разработать программное обеспечение для автоматического обнаружения, захвата и сопровождения объекта с помощью видеокамеры и поворотного механизма.Исходные данные: Видеокамера с оптикой. Поворотное устройство по двум осям (азимут/угол места). Сервоприводы с… AI и машинное обучение, Python ∙ 3 часа 19 минут назад ∙ 6 ставок |
ТЗ НА ДОПРАЦЮВАНИЕ AI-БОТА ГЕНЕРАЦИИ ЛИЧНЫХ ПЕСЕНТЗ НА ДОПРАЦЮВАННЯ AI-БОТА ГЕНЕРАЦІЇ ПЕРСОНАЛЬНИХ ПІСЕНЬГОЛОВНА ЦІЛЬ Створити стабільний преміальний продукт, який: генерує максимально якісні персональні пісні; не вигадує факти про клієнта; працює стабільно під навантаженням; легко масштабується; дозволяє аналізувати та… Python, Разработка ботов ∙ 4 часа 24 минуты назад ∙ 17 ставок |
Специалист по Excel / автоматизации процессов (Excel + желательно программирование)Ищем специалиста с ПРОДВИНУТЫМИ знаниями Excel для оптимизации существующего файла и автоматизации процессов. Будет большим преимуществом, если вы также имеете навыки программирования / VBA / Power Query / Power Automate или опыт создания сложной логики в Excel. Задачи проекта… Python, Базы данных и SQL ∙ 7 часов 23 минуты назад ∙ 26 ставок |
Автоматизация процессоів через API и PhytonНиже описал текущий процесс и то, к какому результату хотелось бы прийти. Также прикладіваю файлы реалтного процесса чтобы лучше понять как он выглядит в ревльности Текущий процесс Сейчас весь процесс выполняется вручную: загрузка/выгрузка файлов, перенос данных между… AI и машинное обучение, Python ∙ 8 часов 24 минуты назад ∙ 32 ставки |
Необходимо создать бота в ТГ для оплаты подписки.
2000 UAH
Необходимо создать бота в телеграме, где пользователь сможет оформить подписку на доступ к веб-камерам, которые находятся во дворе. Организовать в боте оплату двух видов подписок (на месяц и на один день). Бот должен автоматически проверять оплату и после выдавать ссылку-доступа. Python, Разработка ботов ∙ 21 час 11 минут назад ∙ 72 ставки |