-
Notifications
You must be signed in to change notification settings - Fork 1
Add pipeline for different LLMs #18
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
base: main
Are you sure you want to change the base?
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.
Great work. This looks excellent.
Do you mind adding tests for a timeless effect? Totally optional.
Let me know if you have any questions.
@@ -172,3 +172,5 @@ cython_debug/ | |||
|
|||
# PyPI configuration file | |||
.pypirc | |||
|
|||
secrets/.env |
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.
Maybe we can have a catch-all for all .env files?
main.py
Outdated
from utils.evaluation import evaluate_summary | ||
|
||
def main(): | ||
input_path = "s20e06-from-supply-chain-management-to-digital-warehousing-and-finops.md" |
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.
Is it possible to make this dynamic? Instead of hard coding the file name, that is.
main.py
Outdated
|
||
def main(): | ||
input_path = "s20e06-from-supply-chain-management-to-digital-warehousing-and-finops.md" | ||
output_path = "summary_groq.md" |
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.
Maybe this too in case of duplicates or the user needing a different name output.
main.py
Outdated
|
||
podcast_text = load_text(input_path) | ||
|
||
llm = GroqLLM() # You can easily switch to OpenAI later |
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.
ditto. But this is me thinking out loud. Let me know your thoughts.
3. **Guest Introduction** | ||
- Begin with a short introduction of the guest. | ||
- Write one or two complete sentences. | ||
- Each sentence should be between 25 and 40 words. |
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.
Isn't this requirement a bit stringent?
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.
You are right. But I needed something like this to achieve more consistent results that align well with Valeria’s and Ricardo’s suggestions. I have evaluated many outputs that did not match the suggested quality, and in some prompts (especially with lightweight architectures), the output was wildly changing. The final summary outputs seem much more consistent.
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.
By the way, I may prefer Afsin’s prompt combined with the OpenAI approach for the final case when he shares it. I’ve noticed that the output of LLMs can also vary depending on the style of the prompt we use.
@@ -0,0 +1,10 @@ | |||
def chunk_text(text, max_chars=3000, overlap=200): |
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.
Is chunking optional? Given most API's can handle all the context?
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 is a very good question. In my case, with two architectures I worked on (Gemma2-9B-IT and LLaMA3-70B-8192), due to token limits, I had to implement chunking. However, for Afsin’s case, it was not a problem. We may also need chunking when a longer podcast comes in for Afsin’s GPT-4o-mini model.
Description
Related Issues
Fixes #20
Changes Made
How to Test
Screenshots (if applicable)
Checklist