Init
This commit is contained in:
commit
3efaddfae1
17
Dockerfile
Normal file
17
Dockerfile
Normal file
@ -0,0 +1,17 @@
|
||||
# Use Python 3.9 slim image as base
|
||||
FROM python:3.9-slim
|
||||
|
||||
# Set working directory in container
|
||||
WORKDIR /app
|
||||
|
||||
# Copy the application code
|
||||
COPY . .
|
||||
|
||||
# Install dependencies
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
# Expose port (assuming the app runs on port 8000)
|
||||
EXPOSE 8000
|
||||
|
||||
# Run the application
|
||||
CMD ["python", "main.py"]
|
36
main.py
Normal file
36
main.py
Normal file
@ -0,0 +1,36 @@
|
||||
from fastapi import FastAPI, HTTPException
|
||||
from pydantic import BaseModel
|
||||
from typing import Any
|
||||
import uvicorn
|
||||
import json
|
||||
|
||||
app = FastAPI(
|
||||
title="Remember Service",
|
||||
description="An OpenAPI-compatible service that allows an LLM to save details by remembering them.",
|
||||
version="1.0.0"
|
||||
)
|
||||
|
||||
class RememberRequest(BaseModel):
|
||||
"""
|
||||
The request model for the remember tool.
|
||||
"""
|
||||
content: Any
|
||||
metadata: dict = {}
|
||||
|
||||
@app.post("/remember",
|
||||
summary="Store information to remember",
|
||||
description="Saves the provided content and optional metadata. This endpoint is designed to be called by an LLM as a tool.")
|
||||
def remember_endpoint(request: RememberRequest):
|
||||
"""
|
||||
Endpoint to remember information.
|
||||
Prints the received payload to stdout in JSON format.
|
||||
"""
|
||||
payload = {
|
||||
"content": request.content,
|
||||
"metadata": request.metadata
|
||||
}
|
||||
print(json.dumps(payload, indent=2, ensure_ascii=False))
|
||||
return {"status": "remembered"}
|
||||
|
||||
if __name__ == "__main__":
|
||||
uvicorn.run(app, host="0.0.0.0", port=8000)
|
3
requirements.txt
Normal file
3
requirements.txt
Normal file
@ -0,0 +1,3 @@
|
||||
fastapi>=0.68.0
|
||||
uvicorn>=0.15.0
|
||||
pydantic>=1.8.0
|
Loading…
x
Reference in New Issue
Block a user