Appwrite function is throwing a n exception when I am trying to call Open AI API. Exception: Connection error.
My appwritre version is 1.6.0 Function runtime is Python 3.10 running in Ubuntu 22.04 server
Note: I have tested same code in my local machine and server (without appwrite) it worked as expexted. But in Appwrite, function detects the incoming request, gets required environment variables and it only fails when it tries to call AI API.
Here is my code: main.py:
from langchain_openai import ChatOpenAI
from .utils import throw_if_missing
import os
def main(context):
throw_if_missing(os.environ, ["OPENAI_API_KEY"])
context.log("Received request and checking method")
context.log(f"Prompt: {context.req.body['prompt']}")
key = os.environ["OPENAI_API_KEY"]
try:
throw_if_missing(context.req.body, ["prompt"])
except ValueError as err:
context.log(f"Missing required fields: {err}")
context.log(context.req.body)
return context.res.json({"ok": False, "error": err.message}, 400)
context.log(f"Prompt: {context.req.body['prompt']}")
try:
context.log("Querying model")
model = ChatOpenAI(model="gpt-4o-mini",api_key=key)
response = model.invoke("What is 81 divided by 9?")
context.log("Model queried successfully")
context.log(response)
return context.res.json({"ok": True, "completion": response}, 200)
except Exception as ex:
context.log("Failed to query model")
context.log(ex)
return context.res.json({"ok": False, "error": "Failed to query model."}, 500)
utils.py:
import os
__dirname = os.path.dirname(os.path.abspath(__file__))
static_folder = os.path.join(__dirname, "../static")
def throw_if_missing(obj: object, keys: list[str]) -> None:
missing = [key for key in keys if key not in obj or not obj[key]]
if missing:
raise ValueError(f"Missing required fields: {', '.join(missing)}")
Recommended threads
- Disabling registration
Is it possible to disable registration in self hosted ?
- Relationship lists aren't showing
In flutter, when I perform a listRows function for my table which contains various relationships in addition to normal data, I am not getting the relationships ...
- coolify help
need some help when i updated the docker compose config on coolify to update appwrite to latest version my old versions project and organization was totally ina...