--- title: ArtickBot emoji: 🚀 colorFrom: yellow colorTo: red sdk: docker pinned: false license: mit app_port: 7860 --- --- # ArtickoBot This project implements a chatbot using FastAPI and a pre-trained language model. The chatbot can generate responses based on user prompts and persona descriptions. All api docs can be found here https://articko-artickbot.hf.space/docs#/ ## Table of Contents - [Overview](#overview) - [Endpoints](#endpoints) - [/thread/{user_id}](#threaduser_id) - [/chat_thread/{user_id}](#chat_threaduser_id) ## Requirements - Docker - Hugging Face Spaces ## Usage ### Building the Docker Image - The application has a Dockerfile that will run automatic and install as well as build the dependencies ### Running the Docker Container - The Dockerfile is configured to start uvicorn servers at port: 7860 - The uvicorn can be configured to use multiple workers to process/serve data ### Accessing the API You can access the API endpoints using a web browser or an HTTP client at `https://articko-artickbot.hf.space/`. The API endpoints can also be accessed from Localhost using a web browser or an HTTP client at `https://127.0.0.1:7860/`. If your machine is using proxy servers make sure that the host address of the proxy server is set to host: `127.0.0.1` at Port: `7860` otherwise the requests will be denied --- ## Endpoints ### /thread/{user_id} Starts a new conversation thread with a provided prompt for a specific user. Remember this uses the ai persona written inside the code, for custom ai persona use endpoint /chat_thread/{user_id} - **Method**: `POST` - **Parameters**: - `user_id` (str): The unique identifier for the user. - **Request Body**: ```json { "msg_prompt": "User's message prompt", "msg_history": "Previous chat history (optional)" } ``` - **Responses**: - `200 OK`: Successfully started a new conversation thread. ```json { "response": { "user_id": "user_id", "thread": { "thread_id": "unique_thread_id", "message_id": "unique_message_id", "message": { "user": "User's message prompt", "assistant": "Model's response" } } } } ``` - `400 Bad Request`: If the prompt is not provided. ```json { "detail": "Prompt not provided" } ``` - `500 Internal Server Error`: If an unexpected error occurs. ```json { "detail": "Internal Server Error" } ``` ### /chat_thread/{user_id} Starts a new chat thread with a provided user message prompt and persona description of the AI assistant. - **Method**: `POST` - **Parameters**: - `user_id` (str): The unique identifier for the user. - **Request Body**: ```json { "ai_persona": "AI assistant's persona description", "msg_prompt": "User's message prompt", "msg_history": "Previous chat history (optional)" } ``` - **Responses**: - `200 OK`: Successfully started a new chat thread. ```json { "response": { "user_id": "user_id", "thread": { "thread_id": "unique_thread_id", "message_id": "unique_message_id", "message": { "user": "User's message prompt", "assistant": "Model's response" } } } } ``` - `400 Bad Request`: If the prompt is not provided. ```json { "detail": "Prompt not provided" } ``` - `500 Internal Server Error`: If an unexpected error occurs. ```json { "detail": "Internal Server Error" } ``` This README provides an overview of Articko Bot and detailed information about its endpoints, including request bodies and responses. --- This should give users a clear understanding of how to interact with the API and what to expect in terms of responses. For more details on each endpoint, refer to the docstrings within the source code. ## Contributing Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request. ## License This project is licensed under the [MIT License](LICENSE). ---