Releases: bradyjoslin/assembllm
v0.7.0
v0.6.1
v0.6.0
Add support for function / tool calling with Anthropic and OpenAI.
Example:
name: Sentiment Analysis Workflow
description: |
Uses the OpenAI tools / function calling capability that takes unstructured prompt text
and returns structured data, in this case in the form of sentiment scores.
Also compatible with the Anthropic plugin.
tasks:
- name: print_sentiment_scores
plugin: openai
description: Prints the sentiment scores of a given text.
tools:
- name: sentiment_scores
description: provide sentiment scores based on input
input_schema:
type: object
properties:
positive_score:
type: number
description: The positive sentiment score, ranging from 0.0 to 1.0.
negative_score:
type: number
description: The negative sentiment score, ranging from 0.0 to 1.0.
neutral_score:
type: number
description: The neutral sentiment score, ranging from 0.0 to 1.0.
required:
- positive_score
- negative_score
- neutral_score
prompt: |
After a long week of hard work and challenges, it feels incredibly rewarding to see
our team's efforts pay off with such remarkable results. The support from our colleagues
was instrumental in overcoming the hurdles we faced. Although there were moments of doubt
and stress, the overall experience has been positive and fulfilling.Output:
{
"input": {
"negative_score": 0.1,
"neutral_score": 0.3,
"positive_score": 0.6
},
"name": "sentiment_scores"
}Changelog
v0.5.0
v0.4.1
v0.4.0
New Features
Prompt Iteration
CLI iteration
Provide an array of prompts that execute sequentially.
-i, --iterator String array of prompts ['prompt1', 'prompt2']
Example:
> assembllm -i "[hello in spanish, hello in french]"
Hello in Spanish is "¡Hola!"
Bonjour! Comment puis-je vous aider aujourd'hui?Workflow iteration
An iterator_script expression is now available at the top level of your workflows. The iterator script is designed to only allow returning an array of strings. The workflow will iterate over all of the tasks in the workflow for the range of items in the array, with the ith string value provided as the task prompt per iteration.
See the provided sample workflows/rss.yaml that demonstrates this capability by calling the RSS feed for hacker news, parsing the title and url, creating an array of the first 5 stories in the feed, which are iterated over individually, and the LLM provides a summary for each.
Workflow chaining
Going beyond task chaining, now you can dynamically link different workflow files, the output of one becomes the input for another. Enhances modularity, maintainability, and scalability of your automated processes.
Key Benefits:
- Modularity: Break down complex operations into smaller, manageable workflows.
- Reusability: Reuse predefined workflows across different tasks, reducing redundancy.
- Dynamic Execution: Enable flexible and adaptive workflow execution based on task outputs.
See the example workflows/workflow_chaining.yaml which demonstrates doing market research using Perplexity, then sends the provided results to a workflow dedicated to writing effective emails, which returns the results back to the original workflow.
Changelog
- fefcb01 Create algorithm_time_complexity.yaml workflow
- 3f6945a Create hacker_news_top_story.yaml
- bc49cb0 Create socratic challenge workflow
- 007a9ba chore: Rename hacker_news_top_story.yaml to rss.yaml
- 54d0fe3 chore: Update scrape-html-prescript.yaml
- 621f379 chore: update hacker_news_top_story.yaml
- 4201623 feat: add prompt iteration (#29)
- b29c494 feat: workflow chaining (#30)
v0.3.1
Changelog
- 39718fe chore: bump app version
- ea6eb02 chore: update README.md
- 4cbe7e3 chore: update README.md
- 3206dff chore: update README.md
- 1ff21fe chore: update docs
- 8490008 chore: update extism_example_task.yaml
- 94507f7 chore: update generate_presentation example
- e57c28b chore: update git_diff description with example
- df53bb6 chore: update product_requirements_stories with example
- 9b0e328 fix: model selection in workflows