Skip to content

Commit f8ad1f9

Browse files
jemeza-codegencodegen-bot
and
codegen-bot
authored
CG-10610: System Prompt Generation (#221)
# Motivation System Prompt can now be updated automatically and read # Content - Added new gist client to support gist read and writes # Please check the following before marking your PR as ready for review - [x] I have added tests for my changes - [x] I have updated the documentation or added new documentation as needed - [x] I have read and agree to the [Contributor License Agreement](/codegen-sh/codegen-sdk/blob/develop/CLA.md) --------- Co-authored-by: codegen-bot <[email protected]>
1 parent 234fbe7 commit f8ad1f9

File tree

6 files changed

+9925
-23
lines changed

6 files changed

+9925
-23
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ repos:
9999
files: '' # Check all files
100100
- id: generate-runner-imports
101101
name: Generate Runner Imports
102-
entry: bash -c "uv run --frozen python -m codegen.gscli.main generate runner-imports src/codegen/shared/compilation/function_imports.py"
102+
entry: bash -c "uv run --frozen python -m codegen.gscli.cli generate runner-imports src/codegen/shared/compilation/function_imports.py"
103103
language: system
104104
pass_filenames: false
105105
always_run: true

docs/snippets/links.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ export const CODEGEN_SDK_GITHUB_URL =
66
export const CODEGEN_SDK_EXAMPLES_GITHUB_URL =
77
"https://github.com/codegen-sh/codegen-examples";
88

9-
export const CODEGEN_SYSTEM_PROMPT = "https://gist.githubusercontent.com/jayhack/15681a2ceaccd726f19e6fdb3a44738b/raw/17c08054e3931b3b7fdf424458269c9e607541e8/codegen-system-prompt.txt"
9+
export const CODEGEN_SYSTEM_PROMPT = "https://raw.githubusercontent.com/codegen-sh/codegen-sdk/refs/heads/develop/src/codegen/sdk/system-prompt.txt"

src/codegen/gscli/main.py renamed to src/codegen/gscli/cli.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
11
#!/bin/python
2-
import logging
32

43
import click
54

65
from codegen.gscli.generate.commands import generate
76

87

98
@click.group()
10-
def cli() -> None:
9+
def main() -> None:
1110
pass
1211

1312

1413
# ============= Import all command groups =============
15-
cli.add_command(generate)
16-
17-
18-
def main() -> None:
19-
logging.basicConfig(level=logging.INFO)
20-
cli()
14+
main.add_command(generate)
2115

2216

2317
if __name__ == "__main__":

src/codegen/gscli/generate/commands.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
import click
88
from termcolor import colored
99

10+
import codegen.sdk as sdk
1011
from codegen.gscli.generate.runner_imports import _generate_runner_imports
12+
from codegen.gscli.generate.system_prompt import get_system_prompt
1113
from codegen.gscli.generate.utils import LanguageType, generate_builtins_file
1214
from codegen.sdk.code_generation.codegen_sdk_codebase import get_codegen_sdk_codebase
1315
from codegen.sdk.code_generation.doc_utils.generate_docs_json import generate_docs_json
@@ -104,9 +106,16 @@ def generate_docs(docs_dir: str) -> None:
104106
This will generate docs using the codebase locally, including any unstaged changes
105107
"""
106108
generate_codegen_sdk_docs(docs_dir)
107-
# generate_canonical_codemod_docs(docs_dir, codebase)
108-
# generate_skills_docs(docs_dir)
109-
# generate_guides(docs_dir)
109+
110+
111+
@generate.command()
112+
@click.argument("filepath", default=sdk.__path__[0] + "/system-prompt.txt", required=False)
113+
def system_prompt(filepath: str) -> None:
114+
print(f"Generating system prompt and writing to {filepath}...")
115+
new_system_prompt = get_system_prompt()
116+
with open(filepath, "w") as f:
117+
f.write(new_system_prompt)
118+
print(f"Successfully wrote system prompt to {filepath}.")
110119

111120

112121
def get_snippet_pattern(target_name: str) -> str:
@@ -186,7 +195,3 @@ def generate_codegen_sdk_docs(docs_dir: str) -> None:
186195
json.dump(mint_data, mint_file, indent=2)
187196

188197
print(colored("Updated mint.json with new page sets", "green"))
189-
190-
191-
if __name__ == "__main__":
192-
generate()

src/codegen/gscli/generate/system_prompt.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,3 @@ def render_groups(group_names: list[str]) -> str:
2727
def get_system_prompt() -> str:
2828
"""Generates a string system prompt based on the docs"""
2929
return render_groups(["Introduction", "Building with Codegen", "Tutorials"])
30-
31-
32-
if __name__ == "__main__":
33-
system_prompt = get_system_prompt()
34-
open("/tmp/system-prompt.txt", "w").write(system_prompt)
35-
print("Wrote to /tmp/system-prompt.txt")

0 commit comments

Comments
 (0)