Package: adala
Adala is anAutonomousDAta (Labeling)Agent framework.Adala offers a robust framework for implementing agents specialized in data processing, with an emphasis on
diverse data labeling tasks. These agents are autonomous, meaning they can independently acquire one or more skills
through iterative learning. This learning process is influenced by their operating environment, observations, and
reflections. Users define the environment by providing a ground truth dataset. Every agent learns and applies its skills
in what we refer to as a "runtime", synonymous with LLM.📢 Why choose Adala?🌟Reliable agents: Agents are built upon a foundation of ground
truth data. This ensures consistent and trustworthy results, making Adala a
reliable choice for your data processing needs.🎮Controllable output: For every skill, you can configure the
desired output and set specific constraints with varying degrees of
flexibility. Whether you want strict adherence to particular
guidelines or more adaptive outputs based on the agent's learning,
Adala allows you to tailor results to your exact needs.🎯Specialized in data processing: While agents excel in diverse
data labeling tasks, they can be customized for a wide range of data
processing needs.🧠Autonomous learning: Adala agents aren't just automated;
they're intelligent. They iteratively and independently develop
skills based on environment, observations, and reflections.✅Flexible and extensible runtime: Adala's runtime environment is
adaptable. A single skill can be deployed across multiple runtimes,
facilitating dynamic scenarios like the student/teacher
architecture. Moreover, the openness of framework invites the
community to extend and tailor runtimes, ensuring continuous
evolution and adaptability to diverse needs.🚀Easily customizable: Quickly customize and develop agents to address
challenges specific to your needs, without facing a steep learning curve.🫵 Who is Adala for?Adala is a versatile framework designed for individuals and professionals in the field of AI and machine learning. Here's who can benefit:🧡AI engineers:Architect and design AI agent systems with modular, interconnected skills. Build production-level agent systems, abstracting low-level ML to Adala and LLMs.💻Machine learning researchers:Experiment with complex problem decomposition and causal reasoning.📈Data scientists:Apply agents to preprocess and postprocess your data. Interact with Adala natively through Python notebooks when working with large Dataframes.🏫Educators and students:Use Adala as a teaching tool or as a base for advanced projects and research.While the roles highlighted above are central, it's pivotal to note that Adala is intricately designed to streamline and elevate the AI development journey,
catering to all enthusiasts, irrespective of their specific niche in the field. 🥰🔌InstallationInstall Adala:pipinstalladalaAdala frequently releases updates. In order to ensure that you are using the most up-to-date version, it is recommended that you install it from GitHub:pipinstallgit+https://github.com/HumanSignal/Adala.git📝 PrerequisitesSet OPENAI_API_KEY (see instructions here)export OPENAI_API_KEY='your-openai-api-key'🎬 QuickstartIn this example we will use Adala as a standalone library directly inside Python notebook.Clickhereto see an extended quickstart example.importpandasaspdfromadala.agentsimportAgentfromadala.environmentsimportStaticEnvironmentfromadala.skillsimportClassificationSkillfromadala.runtimesimportOpenAIChatRuntimefromrichimportprint# Train datasettrain_df=pd.DataFrame([["It was the negative first impressions, and then it started working.","Positive"],["Not loud enough and doesn't turn on like it should.","Negative"],["I don't know what to say.","Neutral"],["Manager was rude, but the most important that mic shows very flat frequency response.","Positive"],["The phone doesn't seem to accept anything except CBR mp3s.","Negative"],["I tried it before, I bought this device for my son.","Neutral"],],columns=["text","sentiment"])# Test datasettest_df=pd.DataFrame(["All three broke within two months of use.","The device worked for a long time, can't say anything bad.","Just a random line of text."],columns=["text"])agent=Agent(# connect to a datasetenvironment=StaticEnvironment(df=train_df),# define a skillskills=ClassificationSkill(name='sentiment',instructions="Label text as positive, negative or neutral.",labels={'sentiment':["Positive","Negative","Neutral"]},input_template="Text:{text}",output_template="Sentiment:{sentiment}"),# define all the different runtimes your skills may useruntimes={# You can specify your OPENAI API KEY here via `OpenAIRuntime(..., api_key='your-api-key')`'openai':OpenAIChatRuntime(model='gpt-3.5-turbo'),},default_runtime='openai',# NOTE! If you have access to GPT-4, you can uncomment the lines bellow for better results#     default_teacher_runtime='openai-gpt4',#     teacher_runtimes = {#       'openai-gpt4': OpenAIRuntime(model='gpt-4')#     })print(agent)print(agent.skills)agent.learn(learning_iterations=3,accuracy_threshold=0.95)print('\n=> Run tests ...')predictions=agent.run(test_df)print('\n=> Test results:')print(predictions)👉 Available skillsClassificationSkill– Classify text into a set of predefined labels.ClassificationSkillWithCoT– Classify text into a set of predefined labels, using Chain-of-Thoughts reasoning.SummarizationSkill– Summarize text into a shorter text.QuestionAnsweringSkill– Answer questions based on a given context.TranslationSkill– Translate text from one language to another.TextGenerationSkill– Generate text based on a given prompt.Skill Sets– Process complex tasks through a sequence of skills.🗺 RoadmapLow-level skill management (i.e. agent.get_skill("name")) [COMPLETE @niklub]Make every notebook example to run in Google Collab and add a badge into READMEExtend environment with one more exampleMulti-task learning (learn multiple skills at once)Calculate and store top line Agent metrics (predictions created, runtime executions, learning loops, etc)Create Named Entity Recognition SkillCommand line utility (see the source for this readme for example)REST API to interact with AdalaVision and multi-modal agent skills🤩 Contributing to AdalaEnhance skills, optimize runtimes, or pioneer new agent types. Whether you're
crafting nuanced tasks, refining computational environments, or sculpting specialized agents for unique domains, your
contributions will power Adala's evolution. Join us in shaping the future of intelligent systems and making Adala more
versatile and impactful for users across the globe.Read morehere.💬 SupportDo you need help or are you looking to engage with community? Check outDiscord channel!
Whether you have questions, need clarification, or simply want to discuss topics related to the project, the Discord community is welcoming!