joah moat
joah moat

Reputation: 11

404 error with insomnia any help greatly appreciated

We are reviving a 404 error with http://127.0.0.1:5000/chat we access "hello world" from http://127.0.0.1:5000 our web browser. We seem to have tried everything, any insight would be greatly appreciated, thx

from flask import Flask, request, jsonify, send_from_directory, Response
from flask_cors import CORS
import openai
import os
from dotenv import load_dotenv
from typing import Union
from openai import OpenAIError, RateLimitError
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

# Load environment variables from .env file
load_dotenv()

# Get the OpenAI API key from the environment variable
openai.api_key = os.getenv('OPENAI_API_KEY')

# Initialize Flask app
app = Flask(__name__)
CORS(app)

# Explicitly setting debug and environment
app.config['ENV'] = 'development'
app.config['DEBUG'] = True

# Set up the database configuration
app.config['SQLALCHEMY_DATABASE_URI'] = (
    'mysql+mysqlconnector://osric_user:Temporal1!@localhost/osric_db'
)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

# Initialize the database and migration modules
db = SQLAlchemy(app)
migrate = Migrate(app, db)

# Define campaign state
campaign_state = {
    "characters": [],
    "sessions": []
}

# Generate response using OpenAI API
def generate_response(input_text: str) -> str:
    prompt = f"OSRIC campaign response: {input_text}"
    try:
        response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role": "system", "content": "You are a helpful assistant."},
                {"role": "user", "content": prompt}
            ],
            max_tokens=150
        )
        return response['choices'][0]['message']['content'].strip()
    except OpenAIError as e:
        return f"Error occurred: {str(e)}"
    except RateLimitError:
        return "Rate limit error: You have exceeded your quota."
    except Exception as e:
        return f"An error occurred: {str(e)}"

# Flask route for chat endpoint
@app.route('/chat', methods=['POST'])
def chat() -> Union[Response, tuple[Response, int]]:
    if request.json is None:
        app.logger.error("Invalid input: request.json is None")
        return jsonify({"error": "Invalid input"}), 400

    user_input: str = request.json.get('input')
    if not user_input or not isinstance(user_input, str):
        app.logger.error(f"Invalid input: {user_input}")
        return jsonify({"error": "Invalid input"}), 400

    try:
        response_text: str = generate_response(input_text=user_input)
        return jsonify({"response": response_text})
    except Exception as e:
        app.logger.error(f"Error processing request: {e}")
        return jsonify(
            {"error": "An error occurred while processing the request"}
        ), 500

# Flask route for adding a character
@app.route('/add_character', methods=['POST'])
def add_character():
    if request.json is None:
        return jsonify({"error": "Invalid character data"}), 400

    character = request.json.get('character')
    if not character:
        return jsonify({"error": "Invalid character data"}), 400

    campaign_state["characters"].append(character)
    return jsonify({"message": "Character added", "character": character})

# Flask route for getting characters
@app.route('/get_characters', methods=['GET'])
def get_characters() -> Response:
    return jsonify({"characters": campaign_state["characters"]})

# Serve the index.html file
@app.route('/')
def serve_index() -> Response:
    return send_from_directory(directory='.', path='index.html')

# Serve the favicon.ico file
@app.route('/favicon.ico')
def favicon() -> Response:
    return send_from_directory(
        directory=os.path.join(app.root_path, 'static'),
        path='favicon.ico'
    )

# Additional route to display a simple message
@app.route('/home')
def home():
    return "Hello World"

# Main entry point
if __name__ == '__main__':
    app.run(debug=True, host="127.0.0.1", port=5000)


we set our firewall rules to port 5000 we tried rewriting the code, but we still are not connecting

Upvotes: 1

Views: 56

Answers (0)

Related Questions