Comments (7)
Makes sense! I feel like splitting up a code base most often adds complexity, which usually needs be justified by some other motivator -- like splitting up ownership or working around licensing constraints imposed by module specific dependencies.
If the only goal is to avoid adding unnecessary transitive dependencies to griptape applications, then I think @collindutter's suggestion is the way to go. 👍
from griptape.
Just adding my voice in here to say that I'm very interested in using griptape, but the large dependency list (and sqlalchemy<2 specifically #162) makes it impossible for me at the moment. The dependency grouping @collindutter posted would work well for me.
from griptape.
I think we want to leverage poetry extras, the main challenge is how to group the extras. Maybe something like this?
llms-openai = [openai, tiktoken]
llms-cohere = [cohere]
llms-anthropic = [anthropic]
llms-huggingface = [huggingface-hub, transformers]
drivers-sql-base = [sqlalchemy]
drivers-sql-aws = [boto3]
drivers-sql-snowflake = [sqlalchemy, snowflake]
drivers-memory-aws = [boto3]
drivers-memory-pinecone = [pinecone]
drivers-vector-marqo = [marqo]
drivers-vector-pinecone = [pinecone]
from griptape.
As an alternative option, how about using namespace packages to split the repo into mulitple repos? (There are obviously pros and cons to this decision though)
Let me know if you want me to dig into this idea more and give a more specific example.
from griptape.
@dylanholmes, we had the framework split up into three repos at some point but ultimately decided to go back to one, as namespacing introduced more development and usage challenges than it resolved.
from griptape.
I created a PR for this change, would love feedback from those who are interested!
from griptape.
Closing, implemented in #298
from griptape.
Related Issues (20)
- Add Gemini Image Query Driver
- Add Google Gemini support
- BedrockLlamaPromptModelDriver does not apply input truncation, resulting in ValidationError HOT 4
- Add Support For Mistral on AWS Bedrock
- BedrockClaudePromptModelDriver results in ValidationError for Claude V3* models due to incorrect invoke struct HOT 1
- JsonExtractionEngine produces malformed JSON
- ignored_exception_types not working as intended
- vLLM endpoint support HOT 4
- CodeExecutionTask doesn't handle inputs correctly when in a Workflow HOT 2
- Calculating Max Output Tokens Is Inconsistent Across Prompt Drivers
- Driver secrets are serializable
- Azure OpenAI api version `2023-12-01-preview` deprecation HOT 2
- Bing Search Wrapper for WebSearch tool HOT 1
- Add model to emitted events.
- Use rich.print in Chat utility HOT 5
- Bump Pinecone from 2 to 3 HOT 1
- Add StructureRunDrivers to the documentation sidebar HOT 1
- VectorQueryEngine issue with loading artifacts from query HOT 1
- Add `AzureOpenAiStructureConfig`
- Add DuckDuckGo Search tool HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from griptape.