Skip to content
Closed

Me #1152

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
ee0dcbf
Create generator-generic-ossf-slsa3-publish.yml
vepretski Nov 29, 2025
040f87a
Initial plan
Copilot Feb 1, 2026
4cf6b42
Merge pull request #2 from vepretski/copilot/get-full-control-website
vepretski Feb 1, 2026
9f585f2
Initial plan
Copilot Feb 1, 2026
9984afd
Initial plan
Copilot Feb 1, 2026
8cb8701
Merge pull request #5 from vepretski/copilot/make-7ya-io-profitable
vepretski Feb 1, 2026
364c977
Merge pull request #3 from vepretski/copilot/enhance-upgrade-7ya-io
vepretski Feb 1, 2026
5c97ad2
Initial plan
Copilot Feb 1, 2026
bd4f65b
Merge pull request #6 from vepretski/copilot/update-website-content
vepretski Feb 1, 2026
5d28d52
Add 7ya.io attribution to README (#7)
Copilot Feb 1, 2026
402aaa6
[WIP] Prepare application for live deployment (#15)
Copilot Feb 1, 2026
06109eb
Fix resource leaks, O(n²) string concatenation, and redundant blockin…
Copilot Feb 4, 2026
2d5580f
Replace landing page with partnership proposal (#30)
vepretski Feb 4, 2026
0573ef8
Update 7YA.IO branding
vepretski Feb 8, 2026
b5e9c2d
Merge pull request #34 from vepretski/codex/upgrade-all-7ya.io-pages
vepretski Feb 8, 2026
0b9ea36
Upgrade 7YA landing page links, SEO, and accessibility (#56)
vepretski Feb 27, 2026
405e66c
Add 7ya.io take-the-lead operating plan
vepretski Mar 6, 2026
8ecaab9
Set up initial repository structure: src/, docs/, tests/, README, .gi…
Copilot Mar 6, 2026
642eb9f
Create my-agent.agent.md
vepretski Mar 6, 2026
31fda37
docs: expand 7ya.io operating blueprint and fintech workflow
vepretski Mar 6, 2026
c40a08d
Add 7ya workflow product module with SOP agents and KPI API
vepretski Mar 8, 2026
02fb7eb
Merge pull request #69 from vepretski/codex/map-existing-sops-and-def…
vepretski Mar 8, 2026
35f3c44
Add Igor assistant brief API to workflow module (#70)
vepretski Mar 30, 2026
d3ba7d3
Stabilize local run and pytest discovery (#72)
vepretski Apr 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/agents/my-agent.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
# Fill in the fields below to create a basic custom agent for your repository.
# The Copilot CLI can be used for local testing: https://gh.io/customagents/cli
# To make this agent available, merge this file into the default repository branch.
# For format details, see: https://gh.io/customagents/config

name:
description:
---

# My Agent

Describe what your agent does here...
38 changes: 38 additions & 0 deletions .github/workflows/deploy-pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Deploy to GitHub Pages

on:
push:
branches:
- main
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Pages
uses: actions/configure-pages@v4

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: '.'

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
66 changes: 66 additions & 0 deletions .github/workflows/generator-generic-ossf-slsa3-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

# This workflow lets you generate SLSA provenance file for your project.
# The generation satisfies level 3 for the provenance requirements - see https://slsa.dev/spec/v0.1/requirements
# The project is an initiative of the OpenSSF (openssf.org) and is developed at
# https://github.com/slsa-framework/slsa-github-generator.
# The provenance file can be verified using https://github.com/slsa-framework/slsa-verifier.
# For more information about SLSA and how it improves the supply-chain, visit slsa.dev.

name: SLSA generic generator
on:
workflow_dispatch:
release:
types: [created]

jobs:
build:
runs-on: ubuntu-latest
outputs:
digests: ${{ steps.hash.outputs.digests }}

steps:
- uses: actions/checkout@v4

# ========================================================
#
# Step 1: Build your artifacts.
#
# ========================================================
- name: Build artifacts
run: |
# These are some amazing artifacts.
echo "artifact1" > artifact1
echo "artifact2" > artifact2

# ========================================================
#
# Step 2: Add a step to generate the provenance subjects
# as shown below. Update the sha256 sum arguments
# to include all binaries that you generate
# provenance for.
#
# ========================================================
- name: Generate subject for provenance
id: hash
run: |
set -euo pipefail

# List the artifacts the provenance will refer to.
files=$(ls artifact*)
# Generate the subjects (base64 encoded).
echo "hashes=$(sha256sum $files | base64 -w0)" >> "${GITHUB_OUTPUT}"

provenance:
needs: [build]
permissions:
actions: read # To read the workflow path.
id-token: write # To sign the provenance.
contents: write # To add assets to a release.
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.4.0
with:
base64-subjects: "${{ needs.build.outputs.digests }}"
upload-assets: true # Optional: Upload to a new release
29 changes: 29 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,38 @@ cython_debug/
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
package-lock.json
yarn.lock
pnpm-lock.yaml
.npm
.yarn/
dist/
.next/
out/
.nuxt/
.cache/
.parcel-cache/

# OS artifacts – macOS
.DS_Store
.AppleDouble
.LSOverride
._*

# OS artifacts – Windows
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/

# OS artifacts – Linux
*~

# downloaded stuff for 08-building-search-applications
08-building-search-applications/scripts/transcripts_the_ai_show/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ def gen_metadata(playlist_item):
metadata["description"] = playlist_item["snippet"]["description"]

# save the metadata as a .json file
json.dump(metadata, open(filename, "w", encoding="utf-8"))
with open(filename, "w", encoding="utf-8") as f:
json.dump(metadata, f)


def get_transcript(playlist_item, counter_id):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,6 @@ def process_queue(progress, task):
output_segments.append(segment.copy())
progress.update(task, advance=1)
q.task_done()
time.sleep(0.2)


logger.debug("Total segments to be processed: %s", len(segments))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ def clean_text(text):
def get_first_segment(file_name):
"""Gets the first segment from the filename"""

text = ""
text_parts = []
current_seconds = None
segment_begin_seconds = None
segment_finish_seconds = None
Expand All @@ -176,9 +176,9 @@ def get_first_segment(file_name):

if current_seconds < segment_finish_seconds:
# add the text to the transcript
text += clean_text(segment.get("text")) + " "
text_parts.append(clean_text(segment.get("text")))

return text
return " ".join(text_parts) + " " if text_parts else ""


def process_queue(progress, task):
Expand Down Expand Up @@ -206,10 +206,10 @@ def process_queue(progress, task):
print(f"From function call: {filename}\t{speakers}")

metadata["speaker"] = speakers
json.dump(metadata, open(filename, "w", encoding="utf-8"))
with open(filename, "w", encoding="utf-8") as f:
json.dump(metadata, f)

q.task_done()
time.sleep(0.2)


logger.debug("Transcription folder %s", TRANSCRIPT_FOLDER)
Expand Down
11 changes: 6 additions & 5 deletions 09-building-image-applications/python/oai-app-variation.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@
# ---creating variation below---
try:
print("LOG creating variation")
response = openai.images.create_variation(
image=open("generated-image.png", "rb"),
n=1,
size="1024x1024"
)
with open("generated-image.png", "rb") as image_file:
response = openai.images.create_variation(
image=image_file,
n=1,
size="1024x1024"
)

image_path = os.path.join(image_dir, 'generated_variation.png')

Expand Down
11 changes: 6 additions & 5 deletions 09-building-image-applications/python/oai-app.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,9 @@
# ---creating variation below---


response = client.images.create_variation(
image=open(image_path, "rb"),
n=1,
size="1024x1024"
)
with open(image_path, "rb") as image_file:
response = client.images.create_variation(
image=image_file,
n=1,
size="1024x1024"
)
50 changes: 50 additions & 0 deletions DEPLOYMENT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# GitHub Pages Deployment Setup

This repository is configured to deploy to GitHub Pages using GitHub Actions.

## Configuration Required

To enable GitHub Pages deployment for this repository:

1. Go to your repository's **Settings** > **Pages**
2. Under **Build and deployment**, select:
- **Source**: GitHub Actions
3. The deployment workflow (`.github/workflows/deploy-pages.yml`) will automatically run on:
- Pushes to the `main` branch
- Manual workflow dispatch

## Accessing the Site

Once GitHub Pages is enabled and the workflow runs successfully, your site will be available at:
- `https://<username>.github.io/<repository-name>/`

For this repository:
- `https://vepretski.github.io/generative-ai-for-beginners/`

## Local Development

To preview the site locally:

1. Start a local web server in the repository root:
```bash
# Using Python
python -m http.server 8000

# Or using Node.js
npx http-server
```

2. Open your browser to `http://localhost:8000`

The site uses [Docsify](https://docsify.js.org/) to render documentation from Markdown files dynamically.

## Workflow Details

The deployment workflow:
- Triggers on pushes to `main` or manual dispatch
- Checks out the repository
- Configures GitHub Pages
- Uploads the entire repository as a Pages artifact
- Deploys the artifact to GitHub Pages

No build step is required since Docsify renders the documentation client-side.
59 changes: 59 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,65 @@ Special thanks to [**John Aziz**](https://www.linkedin.com/in/john0isaac/) for c

[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) for making key contributions to each lesson to improve the learner and code experience.

---

This fork is maintained by [Igor Vepretski](https://7ya.io) - Empowering the next generation of AI builders. Learn more at [7YA.IO](https://7ya.io)

## 📁 Project Structure

This repository is organised so that beginners can find everything they need quickly.

```
generative-ai-for-beginners/
├── src/
│ └── main.py # Starter script – run this to verify your setup
├── docs/
│ └── setup.md # Detailed environment setup guide
├── tests/
│ └── test_main.py # Unit tests (run with: pytest tests/)
├── 00-course-setup/ # Lesson 0: setting up your development environment
├── 01-introduction-to-genai/ … 21-meta/ # Course lessons
├── .gitignore # Ignores Python, Node.js, and OS artefacts
└── README.md # You are here
```

### ✨ Features

- **21 structured lessons** covering all core Generative AI topics, from fundamentals to advanced techniques.
- **Dual-language code samples** – every Build lesson includes both **Python** and **TypeScript** examples.
- **Multiple LLM provider support** – Azure OpenAI, GitHub Marketplace Models, and the OpenAI API all work out of the box.
- **Hands-on projects** – chat apps, image generators, RAG pipelines, AI agents, and more.
- **Beginner-friendly layout** – each lesson is self-contained with a README, code samples, and extra-learning links.

### 🛠️ Quick Setup

1. **Clone** the repo and create a virtual environment:

```bash
git clone https://github.com/microsoft/generative-ai-for-beginners.git
cd generative-ai-for-beginners
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\Activate.ps1
pip install -r requirements.txt
```

2. **Configure** your LLM provider by copying `.env.copy` to `.env` inside the lesson folder and filling in your API key.

3. **Verify** the setup by running the starter script:

```bash
python src/main.py
```

4. **Run the tests** to make sure everything is working:

```bash
pytest tests/
```

> 📖 For full details see [docs/setup.md](./docs/setup.md).

---

## 🎒 Other Courses

Our team produces other courses! Check out:
Expand Down
Loading