Whitepaper
Docs
Sign In
Function
Function
action
v0.1
Save Outputs
Function ID
save_outputs
Creator
@pietrusky
Downloads
1.6K+
Save outputs locally on your computer.
Get
README
No README available
Function Code
Show
""" title: save_outputs author: stefanpietrusky author_url: https://downchurch.studio/ inspiration: add_to_memories_action_button @pad4651 instruction: you need to mount the container folder /app/data with a local folder when creating the container! „--mount type=bind,source="FOLDER PATH\docker_data",target=/app/data“ icon_url: data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyNHB4IiBmaWxsPSIjNWY2MzY4Ij48cGF0aCBkPSJNODQwLTY4MHY0ODBxMCAzMy0yMy41IDU2LjVUNzYwLTEyMEgyMDBxLTMzIDAtNTYuNS0yMy41VDEyMC0yMDB2LTU2MHEwLTMzIDIzLjUtNTYuNVQyMDAtODQwaDQ4MGwxNjAgMTYwWm0tODAgMzRMNjQ2LTc2MEgyMDB2NTYwaDU2MHYtNDQ2Wk00ODAtMjQwcTUwIDAgODUtMzV0MzUtODVxMC01MC0zNS04NXQtODUtMzVxLTUwIDAtODUgMzV0LTM1IDg1cTAgNTAgMzUgODV0ODUgMzVaTTI0MC01NjBoMzYwdi0xNjBIMjQwdjE2MFptLTQwLTg2djQ0Ni01NjAgMTE0WiIvPjwvc3ZnPg== version: 0.1 """ import os from pydantic import BaseModel, Field from typing import Optional class Action: class Valves(BaseModel): pass class UserValves(BaseModel): show_status: bool = Field( default=True, description="Show status of the action." ) pass def __init__(self): self.valves = self.Valves() pass async def action( self, body: dict, __user__=None, __event_emitter__=None, __event_call__=None, ) -> Optional[dict]: print(f"action:{__name__}") user_valves = __user__.get("valves") if not user_valves: user_valves = self.UserValves() if __event_emitter__: last_assistant_message = body["messages"][-1] if user_valves.show_status: await __event_emitter__( { "type": "status", "data": {"description": "Saving to file", "done": False}, } ) try: directory = "/app/data" if not os.path.exists(directory): os.makedirs(directory) file_path = os.path.join(directory, "saved_outputs.txt") with open(file_path, "a") as file: file.write(f"{last_assistant_message['content']}\n\n") print("Output saved to file in the container, accessible on the host.") except Exception as e: print(f"Error saving output to file: {str(e)}") if user_valves.show_status: await __event_emitter__( { "type": "status", "data": { "description": "Error Saving to File", "done": True, }, } ) if user_valves.show_status: await __event_emitter__( { "type": "status", "data": {"description": "Output Saved", "done": True}, } )