-
Notifications
You must be signed in to change notification settings - Fork 23
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
Update dependency list and move optional ones to extra dependencies #80
Conversation
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.
Do we have to remove datasets?
I added Now we have two different kinds of dependencies:
|
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.
Nice, thanks!
Can you add relevant instructions for installing the optional to the doc?
Also,
Consider removing the lmlib folder?
|
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.
Nice update for the whole project!
…de instructions to install extra dependencies
@XuhuiZhou the doc is added |
98e5785
to
1ec13d1
Compare
@XuhuiZhou @lwaekfjlk Please check the current code and approve if it looks good. As for the efficiency of CI, I think it currently looks OK since we spend around 7 minutes per push which is around 300 pushes per month or 10 pushes per day. We can make this more efficient in a separate PR according to the various solutions in #79 |
yes, sure. Sorry, I just checked again. 2000 min CI is for all private repo, public ones are not included. |
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.
Looks good to me.
Close #59
This is the start of an ongoing effort to make sotopia dependency slimmer.
Similar to tinygrad's point, having less dependencies will make more people easy to use our library with other tools that they are using (no need to resolve conflicts that don't actually exist).
I think the only 8 dependencies that we should have are:
pydantic
: for data validation and abstraction,redis-om
: for data serialization, logging, and communication,tqdm
: for fun,aiohttp
: for calling RESTAPI,beartype
: for type guarding,lxml
: for handling different visibilitiesjinja2
: for prompt templatesgin
: for configuration, and we should remove it in the end as well.Options:
[example]:
[litellm]:
[chat]:
[testing]:
[dev]:
📑 Description
In this PR, I made progress towards this goal --
This is the current required dependency list
pandas = "^2.1.1"
lxml = "^4.9.3"
openai = "^1.11.0"
langchain = "0.1.5"
rich = "^13.6.0"
PettingZoo = "1.24.0"
redis-om = "^0.2.1"
pandas-stubs = ""
types-tqdm = ""
gin-config = "^0.5.0"
absl-py = "^2.0.0"
together = "^0.2.4"
pydantic = "1.10.12"
beartype = "^0.14.0"
langchain-openai = "^0.0.5"
litellm = "^1.23.12"
We now have 14 required dependencies (except for stubs), and removing the other 6 is hard for the following reasons.
pandas
is only used for converting a dict into a csv. This should be a feature that we can easily implement.openai
andtogether
are our "default" LLMs which we could do without, but requires more changes.rich
for printing, which we could conditionally use.PettingZoo
is our initial abstraction for environments, which we have in fact deviated from. We could do without it in a small PR.litellm
could be optional in a following PRHere are our optional dependencies:
fastapi = { version = "^0.109.2", optional = true }
tabulate = { version = "^0.9.0", optional = true }
anthropic = { version = "^0.26.0", optional = true }
xmltodict = { version = "^0.13.0", optional = true }
groq = { version = "^0.4.2", optional = true }
cohere = { version = "^5.1.8", optional = true }
google-generativeai = { version = "^0.5.4", optional = true }
transformers = { version = "^4.41.0", optional = true }
datasets = { version = "^2.19.0", optional = true }
scipy = { version = "^1.13.1", optional = true }
torch = { version = "^2.3.0", optional = true }
✅ Checks
type/descript
(e.g.feature/add-llm-agents
)ℹ Additional Information