prompts.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import json
  2. import asyncclick as click
  3. from asyncclick import pass_context
  4. from cli.utils.timer import timer
  5. from r2r import R2RAsyncClient, R2RException
  6. @click.group()
  7. def prompts():
  8. """Prompts commands."""
  9. pass
  10. @prompts.command()
  11. @pass_context
  12. async def list(ctx: click.Context):
  13. """Get an overview of prompts."""
  14. client: R2RAsyncClient = ctx.obj
  15. try:
  16. with timer():
  17. response = await client.prompts.list()
  18. for prompt in response["results"]: # type: ignore
  19. click.echo(json.dumps(prompt, indent=2))
  20. except R2RException as e:
  21. click.echo(str(e), err=True)
  22. except Exception as e:
  23. click.echo(str(f"An unexpected error occurred: {e}"), err=True)
  24. @prompts.command()
  25. @click.argument("name", type=str)
  26. @click.option("--inputs", default=None, type=str)
  27. @click.option("--prompt-override", default=None, type=str)
  28. @pass_context
  29. async def retrieve(ctx: click.Context, name, inputs, prompt_override):
  30. """Retrieve an prompts by name."""
  31. client: R2RAsyncClient = ctx.obj
  32. try:
  33. with timer():
  34. response = await client.prompts.retrieve(
  35. name=name,
  36. inputs=inputs,
  37. prompt_override=prompt_override,
  38. )
  39. click.echo(json.dumps(response, indent=2))
  40. except R2RException as e:
  41. click.echo(str(e), err=True)
  42. except Exception as e:
  43. click.echo(str(f"An unexpected error occurred: {e}"), err=True)
  44. @prompts.command()
  45. @click.argument("name", required=True, type=str)
  46. @pass_context
  47. async def delete(ctx: click.Context, name):
  48. """Delete a prompt by name."""
  49. client: R2RAsyncClient = ctx.obj
  50. try:
  51. with timer():
  52. response = await client.prompts.delete(
  53. name=name,
  54. )
  55. click.echo(json.dumps(response, indent=2))
  56. except R2RException as e:
  57. click.echo(str(e), err=True)
  58. except Exception as e:
  59. click.echo(str(f"An unexpected error occurred: {e}"), err=True)