-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Overhaul repo to support plugins #3
Conversation
195e966
to
4a09284
Compare
3.12 failing is expected, it's already fixed on |
4a09284
to
6377f28
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fine with "plugin".
I think it's pretty straight forward on how you'd add a prompt driver, but you could provide links to griptape maintained plugin repos for more in depth examples (once we have them).
source .venv/bin/activate | ||
source $VENV |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TIL
test: | ||
test-ubuntu: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Windows too?
07f44dc
to
0c72d3a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We've said what but not why. Small inserts can fix that.
README.md
Outdated
|
||
A Github template repository for creating Griptape tools. | ||
A Github template repository for creating Griptape plugins. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggest "extensions" as it implies extending functionality and capabilities. Opinion, tho.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't have a strong opinion either way.. plugins or extensions both work for me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I like extension more. Plugin, to me, suggests some sort of modification of core behavior. This template is for providing new, extended functionality.
README.md
Outdated
Via github web page: | ||
|
||
Click on `Use this template` | ||
|
||
![](https://docs.github.com/assets/cb-36544/images/help/repository/use-this-template-button.png) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make this one first. Everyone here will know that one, not everyone will be as familiar with the CLI
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
agreed
README.md
Outdated
|
||
## What is a Griptape Plugin? | ||
|
||
A Griptape Plugin is nothing more than a python class that implements one of Griptape's interfaces. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Start with what it affords, e.g., "A Griptape [extension/plugin] allows you to make your own functionality for your Griptape agents..." Since you are already using the 2nd person elsewhere in this document, the second sentence can be "You create one as a Python class that implements a Griptape interface."
You've told me what one is but now why I would want to use one. Give some concrete examples.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I understand the reason behind saying "nothing more than" because it makes it sound simple and easy.. but it ends up sounding not very impressive. Maybe just simplify?
also, not sure what "implements one of Griptape's interfaces" means. When I hear "interfaces" I think "UI".
README.md
Outdated
### Installing Dependencies | ||
|
||
```bash | ||
make install | ||
``` | ||
|
||
### Running Tests | ||
|
||
```bash | ||
make test | ||
``` | ||
|
||
### Running Checks | ||
|
||
```bash | ||
make check | ||
``` | ||
|
||
### Running Formatter | ||
|
||
```bash | ||
make format | ||
``` | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should these be at ####
(four indents) as they appear to be subsets of make setup
```bash | ||
make setup | ||
``` | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summarize what that results in (e.g., "This will install all dependencies, run tests to validate no regressions, run checks (what is that?), and run the formatter (why isn't it formatted already?).
README.md
Outdated
|
||
### Running Example | ||
|
||
1. Set appropriate environment variables. The example requires an `OPENAI_API_KEY` environment variable to be set. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you do a 1a.
that says "each example will require its own environment variables. See the XXX in each example to understand which environment variables are required to run them."
``` | ||
|
||
### Installing In Other Projects | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Talk about why and when you would want to do this, possibly with an example.
README.md
Outdated
2. Run the example: | ||
|
||
```bash | ||
poetry run python examples/example.py |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This assumes the user is using poetry
- should we make that assumption? do we want to include pip
instructions as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This repo is heavily dependent on poetry. I think it's fine as long we provide some justification for it. I'll include some more context about what poetry is and why we're using it.
|
||
The template repository is structured as follows: | ||
|
||
├── griptape |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This wasn't showing as a clean hierarchy in the preview for me - do you want to wrap it in ```?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
made a couple of notes
0c72d3a
to
a5f3a21
Compare
``` | ||
|
||
#### Running Example | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- We gave you an example you can run
- Here's what it does in plain English
- Here's what role the plugin/extension plays in that experience
- Here's where to look for when you want to learn how the plugin/extension was built and hooked up
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
get ahead...ahead of that dread!
README.md
Outdated
|
||
## What is a Griptape Extension? | ||
|
||
Griptape Extensions can add new functionality to the [griptape framework](https://github.com/griptape-ai/griptape), such as new Tools, Drivers, Tasks, or Structures. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Be clear what that affords. "With Griptape Extensions, your Agents can now do X, Y, Z."
Also capitalize Griptape framework
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you have in mind for X, Y, Z? Extensions don't do anything concrete on their own, they simply enable the user to develop functionality like new Tools, Drivers, Tasks, or Structures.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
right, but that may not be obvious what that affords. "With extensions, your Griptape Agents can leverage your team's APIs, perform custom business logic, and access proprietary data sources, all as part of their reasoning."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a sentence.
README.md
Outdated
|
||
### Installing in Other Projects | ||
|
||
Extensions are designed to be shared and installed in projects that can benefit from them. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about Extensions are designed to be shared. Extensions are made to easily install (include? import?) into existing Python projects.
README.md
Outdated
|
||
Extensions are designed to be shared and installed in projects that can benefit from them. | ||
|
||
Although publishing to [PyPI](https://pypi.org/) is an option, it is beyond the scope of this template. Instead, extensions can be installed directly from the repository. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd remove the PyPi comment, because it gives the reader a sense of dread (n.b.: I am always sensing dread). Be optimistic: The easiest way to include your extension into an existing project is to install directly from the repository, like so:
...
later:
Advanced customers may seek to publish their extensions to PyPi. Those instructions are beyond the scope of this README.
a5f3a21
to
8728935
Compare
8728935
to
32428ca
Compare
Overhauls the repo to support more than just Tools. Would like feedback on: