Skip to content

Commit 7233ca5

Browse files
authored
Merge branch 'main' into fix-dir-name
2 parents b61a6ea + 2bf9c1b commit 7233ca5

File tree

84 files changed

+12775
-695
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+12775
-695
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ dmypy.json
138138
tmp_*
139139
examples/fine-tuned_qa/local_cache/*
140140
examples/multimodal/.local_cache/*
141+
examples/coding-agent-workspace
141142

142143
# PyCharm files
143144
.idea/

AGENTS.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Repository Guidelines
2+
3+
## Project Structure & Module Organization
4+
5+
The cookbook is organized around runnable examples and reference articles for OpenAI APIs. Place notebooks and Python scripts under `examples/<topic>/`, grouping related assets inside topic subfolders (for example, `examples/agents_sdk/`). Narrative guides and long-form docs live in `articles/`, and shared diagrams or screenshots belong in `images/`. Update `registry.yaml` whenever you add content so it appears on cookbook.openai.com, and add new author metadata in `authors.yaml` if you want custom attribution. Keep large datasets outside the repo; instead, document how to fetch them in the notebook.
6+
7+
## Build, Test, and Development Commands
8+
9+
Use a virtual environment to isolate dependencies:
10+
11+
- `python -m venv .venv && source .venv/bin/activate`
12+
- `pip install -r examples/<topic>/requirements.txt` (each sample lists only what it needs)
13+
- `jupyter lab` or `jupyter notebook` to develop interactively
14+
- `python .github/scripts/check_notebooks.py` to validate notebook structure before pushing
15+
16+
## Coding Style & Naming Conventions
17+
18+
Write Python to PEP 8 with four-space indentation, descriptive variable names, and concise docstrings that explain API usage choices. Name new notebooks with lowercase, dash-or-underscore-separated phrases that match their directory—for example `examples/gpt-5/prompt-optimization-cookbook.ipynb`. Keep markdown cells focused and prefer numbered steps for multi-part workflows. Store secrets in environment variables such as `OPENAI_API_KEY`; never hard-code keys inside notebooks.
19+
20+
## Testing Guidelines
21+
22+
Execute notebooks top-to-bottom after installing dependencies and clear lingering execution counts before committing. For Python modules or utilities, include self-check cells or lightweight `pytest` snippets and show how to run them (for example, `pytest examples/object_oriented_agentic_approach/tests`). When contributions depend on external services, mock responses or gate the cells behind clearly labeled opt-in flags.
23+
24+
## Commit & Pull Request Guidelines
25+
26+
Use concise, imperative commit messages that describe the change scope (e.g., "Add agent portfolio collaboration demo"). Every PR should provide a summary, motivation, and self-review, and must tick the registry and authors checklist from `.github/pull_request_template.md`. Link issues when applicable and attach screenshots or output snippets for UI-heavy content. Confirm CI notebook validation passes locally before requesting review.
27+
28+
## Metadata & Publication Workflow
29+
30+
New or relocated content must have an entry in `registry.yaml` with an accurate path, date, and tag set so the static site generator includes it. When collaborating, coordinate author slugs in `authors.yaml` to avoid duplicates, and run `python -m yaml lint registry.yaml` (or your preferred YAML linter) to catch syntax errors before submitting.
31+
32+
## Review Guidelines
33+
34+
- Verify file, function, and notebook names follow the repo's naming conventions and clearly describe their purpose.
35+
- Scan prose and markdown for typos, broken links, and inconsistent formatting before approving.
36+
- Check that code identifiers remain descriptive (no leftover placeholder names) and that repeated values are factored into constants when practical.
37+
- Ensure notebooks or scripts document any required environment variables instead of hard-coding secrets or keys.
38+
- Confirm metadata files (`registry.yaml`, `authors.yaml`) stay in sync with new or relocated content.

articles/codex_exec_plans.md

Lines changed: 178 additions & 0 deletions
Large diffs are not rendered by default.

articles/gpt-oss-safeguard-guide.md

Lines changed: 448 additions & 0 deletions
Large diffs are not rendered by default.

authors.yaml

Lines changed: 78 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@
33
# You can optionally customize how your information shows up cookbook.openai.com over here.
44
# If your information is not present here, it will be pulled from your GitHub profile.
55

6+
joanneshin-openai:
7+
name: "Joanne Shin"
8+
website: "https://www.linkedin.com/in/jeongminshin"
9+
avatar: "https://avatars.githubusercontent.com/u/206945323?v=4"
10+
11+
daveleo-openai:
12+
name: "Dave Leo"
13+
website: "https://www.linkedin.com/in/davidanthonyleo/"
14+
avatar: "https://media.licdn.com/dms/image/v2/C5603AQF2Kg-D7XJKNw/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1612654752234?e=1761782400&v=beta&t=RkO9jCbJrY6Ox9YRbMA6HAAZhxfYJV1OsZeIT3YatBM"
15+
616
jonlim-openai:
717
name: "Jonathan Lim"
818
website: "https://www.linkedin.com/in/jonlmr"
@@ -38,6 +48,11 @@ rajpathak-openai:
3848
website: "https://www.linkedin.com/in/rajpathakopenai/"
3949
avatar: "https://avatars.githubusercontent.com/u/208723614?s=400&u=c852eed3be082f7fbd402b5a45e9b89a0bfed1b8&v=4"
4050

51+
emreokcular:
52+
name: "Emre Okcular"
53+
website: "https://www.linkedin.com/in/emreokcular/"
54+
avatar: "https://avatars.githubusercontent.com/u/26163154?v=4"
55+
4156
chelseahu-openai:
4257
name: "Chelsea Hu"
4358
website: "https://www.linkedin.com/in/chelsea-tsaiszuhu/"
@@ -53,6 +68,16 @@ theophile-oai:
5368
website: "https://www.linkedin.com/in/theophilesautory"
5469
avatar: "https://avatars.githubusercontent.com/u/206768658?v=4"
5570

71+
bfioca-openai:
72+
name: "Brian Fioca"
73+
website: "https://www.linkedin.com/in/brian-fioca/"
74+
avatar: "https://avatars.githubusercontent.com/u/206814564?v=4"
75+
76+
carter-oai:
77+
name: "Carter Mcclellan"
78+
website: "https://www.linkedin.com/in/carter-mcclellan/"
79+
avatar: "https://avatars.githubusercontent.com/u/219906258?v=4"
80+
5681
robert-tinn:
5782
name: "Robert Tinn"
5883
website: "https://www.linkedin.com/in/robert-tinn/"
@@ -93,6 +118,11 @@ shyamal-anadkat:
93118
website: "https://twitter.com/shyamalanadkat"
94119
avatar: "https://pbs.twimg.com/profile_images/1590564338682560512/3bbZJqxZ_400x400.jpg"
95120

121+
aaronfriel:
122+
name: "Aaron Friel"
123+
website: "https://www.github.com/aaronfriel"
124+
avatar: "https://avatars.githubusercontent.com/aaronfriel"
125+
96126
simonpfish:
97127
name: "Simón Fishman"
98128
website: "https://twitter.com/simonpfish"
@@ -390,8 +420,8 @@ phundal-openai:
390420

391421
rkoenig-openai:
392422
name: "Robin Koenig"
393-
website: "https://www.linkedin.com/in/robinkoenig/"
394-
avatar: "https://media.licdn.com/dms/image/v2/C5603AQEqUVtbts8Huw/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1558137883581?e=1753920000&v=beta&t=jcm-qNJfmgVJsS6uNHxHu5T2nQoUWkXivthzxTJMWqA"
423+
website: "https://robinkoenig.com"
424+
avatar: "https://avatars.githubusercontent.com/u/208886811?v=4"
395425

396426
joshbickett:
397427
name: "Josh Bickett"
@@ -430,7 +460,7 @@ daisyshe-oai:
430460

431461
dkundel-openai:
432462
name: "Dominik Kundel"
433-
website: "https://www.linkedin.com/in/dominik-kundel/"
463+
website: "https://www.linkedin.com/in/dkundel/"
434464
avatar: "https://avatars.githubusercontent.com/u/200841172?v=4"
435465

436466
edbeeching:
@@ -472,3 +502,48 @@ heejingithub:
472502
name: "Heejin Cho"
473503
website: "https://www.linkedin.com/in/heejc/"
474504
avatar: "https://avatars.githubusercontent.com/u/169293861"
505+
506+
himadri518:
507+
name: "Himadri Acharya"
508+
website: "https://www.linkedin.com/in/himadri-acharya-086ba261/"
509+
avatar: "https://avatars.githubusercontent.com/u/14100684?v=4"
510+
511+
neelk-oai:
512+
name: "Neel Kapse"
513+
website: "https://www.linkedin.com/in/neel-kapse/"
514+
avatar: "https://media.licdn.com/dms/image/v2/D4E03AQEegSR4W4Ylmg/profile-displayphoto-scale_400_400/B4EZkLjdrcIQAk-/0/1756835470622?e=1762387200&v=beta&t=HETTFnoh3nV_Yc84tHGkahKgOFdvnPlesfi3ki8mWFg"
515+
516+
hamel:
517+
name: "Hamel Husain"
518+
website: "https://www.linkedin.com/in/hamelhusain/"
519+
avatar: "https://media.licdn.com/dms/image/v2/C5603AQGoyHYtA2QIXw/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1572471557655?e=1762387200&v=beta&t=wZrq-Nfc8-4Xq-nJ5g2jt9gZ1KLTg23KOIBGHk2xkZ0"
520+
521+
jhall-openai:
522+
name: "Josh Hall"
523+
website: "https://www.linkedin.com/in/jhall14/"
524+
avatar: "https://avatars.githubusercontent.com/u/198997750?v=4"
525+
526+
charlie-openai:
527+
name: "Charlie Weems"
528+
website: "https://wee.ms"
529+
avatar: "https://avatars.githubusercontent.com/u/181146176?v=4"
530+
531+
nikhils-oai:
532+
name: "Nikhil Srivastava"
533+
website: "https://www.linkedin.com/in/nsrivast/"
534+
avatar: "https://avatars.githubusercontent.com/u/231350150"
535+
536+
roost:
537+
name: "ROOST"
538+
website: "https://roost.tools"
539+
avatar: "https://avatars.githubusercontent.com/u/189051351?v=4"
540+
541+
samarth-oai:
542+
name: "Samarth Madduru"
543+
website: "https://x.com/samarthmadduru"
544+
avatar: "https://pbs.twimg.com/profile_images/1911309450368970752/6IFoTpmu_400x400.jpg"
545+
546+
derrickchoi-openai:
547+
name: "Derrick Choi"
548+
website: "https://www.linkedin.com/in/derrickchoi/"
549+
avatar: "https://avatars.githubusercontent.com/u/211427900"

0 commit comments

Comments
 (0)