LLM Face-Off! Gemini vs o1 vs Phi-4 vs deepseek-r1 | Cloud vs Local

Which model provides the best step-by-step instructions to install the GRC Assist python tool? Let's find out!

I would recommend if you are on the GRC path, you need to be sharpening all of your tools or knives in your Swiss Army knife. Ok you’ve got this sick blade but guess what you’ve also got a nail file, and little tweezers and all that other stuff. You don’t use the tweezers very often or the little toothpick thing but every once in a while you need to pull those things out and use them. And if they’re not sharpened or you’re not practiced using them, you’re going to end up with the magnifying glass to pry open a beer bottle cap and it’s not going to have the effect and the impact that the tool was made for.

Hey there,

What’s the best LLM for you that’s:

  • Fit-for-purpose to the task?

  • Within your security and privacy risk tolerance?

  • Optimized for your budget?

This post tests a few out, as we “integrate AI into life and work to stay ahead.”

Let me know your thoughts on applying AI to GRC, or more broadly as the coming wave approaches of technology, power and the twenty-first century’s greatest dilemma. Related blog posts and a YouTube video to follow.

Be safe, be well,

Steve

Contents

🏋️ The AI Challenge

Let’s ask this question to each LLM, and see how it compares to my human-made instructions in the appendix.

With input of this YouTube video transcript https://www.youtube.com/watch?v=IfX6CMi-bpI, provide step-by-step instructions on how to install and run the GRC Assist python tool on a Mac.  Make the steps very granular, with commands I can copy/paste into my terminal. 

🥊 The Contenders

Cloud Hosted

Locally Hosted w/ Ollama

If you haven’t tried Ollama yet and would like to, the instructions I followed to set it up are here:

🧪The Test

The test is to see which LLM provides the closest match to my “human made” steps below, and if they add any cool features.

How I Installed GRC Assist Step-by-Step

#STEP 2: Go to a directory for installation
cd documents/grc_tools

#STEP 3: Install GRC Assist directly from the repo
git clone https://github.com/gerryguy311/grcAssist

#STEP 4: Go to the grcAssist directory
cd grcassist

#STEP 5: Modify grcAssist.py with Nano text editor, to add your API key
nano grcassist.py

Here’s where to add it:

#STEP 6: Save changes and exit Nano with Ctrl+x, Y, Enter
  • STEP 7: Update the keywords of interest to you, in the kewords.csv file that comes in the grcAssist folder

#STEP 8: Crate a virtual environment named venv in your current directory, a best practice for stability and portability, to help avoid conflicts with other projects
python3 -m venv venv

#STEP 9: Activate your virtual environment
source venv/bin/activate

#STEP 10: Install requests
pip install requests

#STEP 11: Install openpyxl
pip install openpyxl

#STEP 12: Run grcAssist!
python3 grcassist.py

🤖 Test Results: Gemini via NotebookLM

Here are step-by-step instructions, based on the provided source, for installing and running the GRC Assist Python tool on a Mac:

  1. Clone the GitHub repository:

    • Open your Mac's terminal application.

    • Use the git clone command followed by the repository URL to copy the GRC Assist tool to your local machine. You will need to find the URL for the repository on GitHub (it is https://github.com/jerryguy311/GRC_Assist). Then copy/paste this into your terminal:

      git clone https://github.com/jerryguy311/GRC_Assist
      
    • This command will create a directory named GRC_Assist in your current directory, and download the tool into it.

  2. Navigate into the directory:

    • Use the cd command to enter the newly created directory:

      cd GRC_Assist
      
  3. Examine the files:

    • Use the ls command to list the files. You should see these files: GRC_data, keywords.csv, and GRC_assist.py.

      ls
      
    • GRC_data is where the output of the script will be saved. The script will append new data to this file every time it runs.

    • keywords.csv is where you will specify the keywords for your searches.

    • GRC_assist.py is the Python script itself.

  4. Create an API key:

    • Go to the newsdata.io website, which is located at newsdata.io.

    • Create a free account.

    • Navigate to the API section of your account.

    • Locate your API key. Note that the free tier is limited to 200 API credits per day, with 10 credits used per article.

      • The free tier allows access to the latest news API and has a 12-hour delay, which is fine for the purposes of this tool.

  5. Edit the GRC_assist.py file:

    • Open the GRC_assist.py file in a text editor.

    • Find the line that says API_key = "YOUR_API_KEY_HERE".

    • Replace YOUR_API_KEY_HERE with the API key you got from newsdata.io, pasting it between the quotation marks.

  6. Edit the keywords.csv file:

    • Open the keywords.csv file in a text editor.

    • Enter your keywords into the file. Each row represents a separate query, and use %20 for white space between multiple keywords in the same row. For example, cybersecurity%20healthcare in one row, and cybersecurity%20regulations in another row.

    • Be mindful that each keyword query will generate results, and you are limited to 200 API credits per day, which could be as few as 20 articles.

  7. Run the script:

    • Make sure you have Python 3 installed on your Mac.

    • Run the script from the terminal using the command:

      python3 GRC_assist.py
      
    • The script will print the results to the screen as it runs.

    • The script will also save the results into the GRC_data file.

    • Make sure the GRC_data file is closed while the script is running.

  8. Examine the results:

    • Open the GRC_data file to see the saved results. Each line of the file includes: the date, keywords used in the query, the title of the news story, the description of the news story, and the URL for the story.

    • The tool is designed to append results, so the file will grow as you run the script.

Evaluation

Strengths

  • Wow! A better combination of usable commands and explanations of each step than I provided, and much faster

  • Easy to reference a YouTube video as a Google native service to Notebook LM and Gemini

Weaknesses

  • Spelled the GitHub repo with a “j” instead of a “g” for Gerry!

  • Missed the environment variables (that weren’t mentioned in the video - so not necessarily a failure within the scope of the test) that I ended up needing to install

🤖 Test Results: Chat GPT 01

Below is a simple, granular process you can follow on a Mac to install and run the GRC Assist Python script. Copy/paste the commands exactly as shown (adjusting paths and file names as needed).

STEP 1: Check or Install Python 3

Check if Python 3 is already installed:

python3 --version

If this shows a version number (for example, Python 3.9.6), proceed. If you see an error or the version is below 3.x, install Python 3. One way is via Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew update
brew install python

STEP 2: Open Terminal and Clone the Repository

Open the Terminal app (found in /Applications/Utilities or via Spotlight) and run:

git clone https://github.com/gerryguy311/grcAssist

This will create a folder called grcAssist in your current directory.

STEP 3: Navigate to the grcAssist Directory

cd grcAssist

List the files to confirm they exist:

ls

You should see:

  • grcAssist.py

  • keywords.csv

  • GRC_data.txt (might appear after the script runs)

STEP 4: Sign Up for a Newsdata.io Free API Key

  1. Go to newsdata.io.

  2. Create a free account.

  3. Locate your API key (often listed under your account settings or API dashboard).

STEP 5. Add Your API Key to the Script

  1. Open grcAssist.py in a text editor. For example, using nano in Terminal:

    nano grcAssist.py
    
  2. Find the line where it says API_KEY = "YOUR_API_KEY_HERE" or similar.

  3. Replace "YOUR_API_KEY_HERE" with the actual API key you copied from newsdata.io.

  4. Press CTRL+O (then Enter) to save, and CTRL+X to exit nano.

STEP 6. (Optional) Update or Edit keywords.csv

The script searches for news articles based on each row in keywords.csv. Each row represents a query. If you want multiple words in a single query, use %20 to replace any spaces.

  1. Open keywords.csv:

    nano keywords.csv
    
  2. Add or edit lines (each line is one query).

  3. Use %20 for spaces. For instance, a query of “cyber security” would appear as cyber%20security.

  4. Save and exit as before.

STEP 7. Run the Script

From inside the grcAssist folder, run:

python3 grcAssist.py
  • The script will retrieve articles based on the queries in keywords.csv.

  • You will see output in the terminal showing titles and links for matching articles.

STEP 8. View the Generated Output File

The script appends results to a file named GRC_data.txt (or something similar, depending on the version):

cat GRC_data.txt
  • This file stores the date, your keywords, and the returned article metadata.

  • Keep it closed while running the script to allow the program to append without issues.

STEP 9. Automate Searches

If desired, create a cron job or schedule the script to run once a day. For example:

crontab -e

Then add a line like below to run the script at 8 AM every day (adjust the path to grcAssist.py if needed):

0 8 * * * /usr/bin/python3 /path/to/grcAssist/grcAssist.py

Save and exit. This way you can build a regular knowledge base of news articles.

That’s it!

Following these steps ensures you’ve installed Python 3, cloned the GRC Assist tool, configured your API key, and run the script to gather cybersecurity news articles.

Evaluation

Strengths

  • Nailed it! All the strengths and speed of Gemini plus no error in the download link plus a cool automation idea at the end with step 9

Weaknesses

  • Didn’t have the seamless YouTube integration with a URL input option like Gemini, but adding the manually scraped transcript did the trick

  • I’d edit the keywords csv in Excel, but Nano works too

  • Like Gemini, Missed the environment variables (that weren’t mentioned in the video - so not necessarily a failure within the scope of the test) that I ended up needing to install

🤖 Test Results: Ollama Phi-4 (local model)

Overview

This video provides a walkthrough on how to automate the process of staying informed about cybersecurity news using Python. The script presented leverages an API from NewsData.io to fetch and store breaking news articles related to specific keywords such as "cybersecurity."

Key Features

  • Automated News Fetching: Using a simple Python script, users can retrieve up-to-date news articles on cybersecurity topics.

  • Keyword Customization: The script allows for customization of search terms (keywords) to tailor the information to specific interests or needs.

  • Efficient Information Management: Articles are automatically saved into a file, reducing manual effort and saving time.

Requirements

  • Python 3.x: Ensure you have Python version 3 installed on your machine as the script is designed for this version.

  • API Key from NewsData.io: You need to register an account with NewsData.io and obtain an API key for accessing their Breaking News API. The free tier offers a limited number of credits, sufficient for regular updates.

Steps

  1. Setup Python Environment:

    • Make sure you have Python 3 installed.

  2. Obtain an API Key:

    • Register at NewsData.io.

    • Navigate to the 'API' section in your account dashboard to get your free tier API key.

  3. Download the Script:

    • The script is available on GitHub, as mentioned by the creator, Jerry.

  4. Configure the Script:

    • Open the Python script and insert your NewsData.io API key where indicated.

  5. Run the Script:

    • Execute the script using a command line interface with python GRC_assist.py.

    • The script will fetch articles based on predefined keywords and store them in a specified file, unless you have the file open during execution (which may prevent overwriting).

Benefits

  • Time Efficiency: Automates the news collection process.

  • Customization: Allows users to focus on specific topics of interest.

  • Professional Insight: Provides up-to-date case studies for professional discussions or reports.

Conclusion

This script is an excellent tool for cybersecurity professionals looking to streamline their information gathering process. By automating updates, they can maintain a current understanding of the field without investing significant time in manual searches.

For further details and support, consider subscribing to Jerry's channel, "Simply Cyber," where more related content might be available.

Evaluation

Strengths

  • Free and private

Weaknesses

  • Too abstracted and not specific

🤖 Test Results: Ollama deepthink-r1 (local model)

<think> Okay, so I just read this whole explanation about a Python script that helps with staying informed on cybersecurity. Let me try to break it down and understand what it's doing.

First, the user is talking about a script called GRC assist.py. They mention using Python 3, which makes sense because Python 3 is more modern and widely supported now. The script seems to use some APIs provided by newsdata.io, specifically the breaking news API. It looks like they're getting up-to-date information on cybersecurity topics.

They talk about an API key being necessary, so I guess without that, the script won't work because it needs access to the service. They also mention a free tier with limited credits, which is probably 200 per day. That's not bad for something like this, but I wonder if there are better alternatives or if the credits can be used up quickly.

The script takes keywords as input and runs them through the API. Then it writes the results to a file called GRC data.txt. They mention that the output is saved both on screen and in the file, which would be useful for documentation.

One thing I'm confused about is how exactly the user interacts with this script. Do they just run it and hope it finds something? Also, where does the API key come from? It seems like without setting it up correctly, the script wouldn't fetch any data.

I think a potential issue could be if someone doesn't have an internet connection when running the script because it's using external APIs. That might limit its usability in environments with poor connectivity.

Another thought is about the accuracy of the results. Since they're pulling from breaking news, it should be relevant, but I'm not sure how often the API updates or if there are delays in information. The user mentions a 12-hour delay, which might affect freshness in some cases.

I also wonder about the customization options. The script seems pretty straightforward with just taking keywords and writing outputs, but maybe there's more you can do to filter results or present them differently.

Overall, it sounds like a useful tool for professionals or anyone needing current cybersecurity news without manually checking each source. But I need to consider setup steps, API key management, and potential limitations. </think>

The Python script "GRC assist.py" is designed to provide real-time updates on cybersecurity topics by leveraging the breaking news API from newsdata.io. Here's a structured overview of its functionality and considerations:

  1. Dependencies:

    • Requires Python 3, indicating compatibility with modern scripting environments.

  2. API Integration:

    • Uses an external API without integrating third-party services, relying on the free tier provided by newsdata.io.

    • An API key is essential for accessing content; the free tier has a credit limit (200 per day).

  3. Functionality:

    • The script takes keywords as input and queries the API to retrieve relevant articles.

    • Results are displayed on screen and saved to "GRC data.txt".

  4. Considerations:

    • Internet Connectivity: Script requires an active internet connection for API access.

    • Accuracy and Freshness: Utilizes breaking news, potentially with a 12-hour delay, affecting timeliness.

    • Customization: Basic script; may offer limited customization options beyond input and output presentation.

  5. Potential Issues:

    • Setup: Requires setting an API key, which must be done correctly for functionality.

    • Connectivity Limitations: Useless without internet or with unreliable connectivity.

  6. Use Case:

    • Ideal for professionals needing current cybersecurity information efficiently.

In conclusion, the script offers a straightforward solution for staying updated on cybersecurity trends using readily available data from newsdata.io's free tier. However, users should consider setup steps, API key management, and potential limitations related to internet access and information freshness.

Evaluation

Strengths

  • Some interesting critical thinking at the beginning about the content

  • Free and private

Weaknesses

  • Too abstract, didn’t provide the detailed steps requested

🏆️ And the Winner Is…

All of us for learning! 🤓 

And also GPT o1 for providing the best instructions

Let me know what you think about these results and/or your own in Simply Cyber Discord

  • 🤖 ai-ml-chat

  • 📚️ akylade-courses