Skip to content

Conversation

Inkbottle007
Copy link
Contributor

Description:
Previously, the "o3-mini" model stopped accepting system prompts, leading to the introduction of the nosystem capability in gptel. However, OpenAI once again allows system prompts (with function equivalently to "developer messages") allowing to restore Markdown formatting by including "Formatting re-enabled" at the start of the system prompt.

Removing the nosystem capability from “o3-mini” allows gptel to once again send system prompts, and in turn re-enable Markdown output for users who prepend instructions like “Formatting re-enabled” to their prompts.

Changes

  • Remove/comment out the nosystem capability for “o3-mini.”
  • Allow system prompts (e.g., “Formatting re-enabled”) to restore Markdown formatting in responses.

Testing
Verified locally by sending a system prompt containing “Formatting re-enabled” to “o3-mini,” which produced Markdown-formatted responses. This aligns with the Azure OpenAI docs.

gptel.el Outdated
:output-cost 12
:cutoff-date "2023-10"
:capabilities (nosystem reasoning)
:capabilities ( ;; nosystem
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can delete it instead of commenting it out.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’ve removed nosystem entirely for o3-mini and o1 as suggested, but left it for o1-mini due to testing. Thanks!

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean by "due to testing"? Are you not sure if it supports system messages?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for the confusion! I tested all three models. Both o3-mini and o1 accept system prompts successfully, but o1-mini rejects them in my tests. Accordingly, I removed nosystem for o3-mini and o1, but left it in place for o1-mini. Let me know if you'd like me to check or change anything else.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've tested each model thoroughly:

  • o3-mini and o1 both accept "system prompts" successfully (including "Formatting re-enabled") and produce Markdown‐formatted output. I've been using them for hours without issue.
  • o1-mini still rejects "system prompts" in my tests, for example returning:

    "(HTTP/2 400) invalid_request_error: Unsupported value: 'messages[0].role' does not support 'system' with this model."

So it appears o1-mini hasn't been updated to support system prompts yet. Because of this, I removed nosystem for o3-mini and o1 only, and kept it for o1-mini. Let me know if there's anything else you'd like me to adjust!

According to testing, o3-mini and o1 now accept system prompts again, restoring
Markdown formatting if 'Formatting re-enabled' is included. However, 'o1-mini'
still rejects system prompts, so 'nosystem' remains for that model. (Refs karthink#609)
@karthink karthink merged commit 748fd85 into karthink:master Mar 14, 2025
@karthink
Copy link
Owner

Thanks for the PR @Inkbottle007!

psionic-k added a commit to positron-solutions/gptel that referenced this pull request Mar 15, 2025
See upstream for individual commits.

748fd85 gptel: Remove nosystem capability for o1/o3 models (karthink#702)
7de8e88 gptel-curl: Add gptel-curl-extra-args
4c5f7e6 gptel: Bump version to v0.9.8
2835d93 gptel: Remove obsolete variables, update NEWS
cc3d74d gptel-org: Obey gptel-org settings when sending regions
8a289e9 gptel-transient: Return to menu with just RET (karthink#695)
9245dfd elpaignore: Add .github (karthink#699)
10e7739 gptel-transient: Don't serialize backend to transient history
e77a47b NEWS: Use org comment and fill paragraphs (karthink#696)
d9edbbc NEWS: Add news file
85a3c00 test: Update submodule
6320c2b gptel: Use font-lock-flush instead of font-lock-fontify-region
7400df6 gptel: Create all prompts in temp buffer
aef57c2 gptel-openai-extras: Fix Deepseek repeated roles error
8889e27 gptel-rewrite: Ignore reasoning output correctly
4edf81c gptel: Linting
354829b test: Update for gptel-org-ignore-elements
b7eb4fc gptel-org: Strip property drawers from the prompt
4ca50d7 gptel-anthropic: Fix reasoning parsing bug
d9ce451 gptel-anthropic: Add prompt caching (karthink#355)
c23cba5 gptel: Add blocks around reasoning content
6de3e00 gptel: Change how reasoning content is tracked
44f75b7 gptel-transient: Fix key collision in gptel-menu
95eefe4 gptel-org: Fix typo from refactoring
8e0d682 gptel-openai: Fix collision with openrouter parsing (karthink#669)
0a2fcb9 gptel-curl: Handle end of reasoning stream in other buffer
3963aff gptel-org: Use gptel-org- prefix consistently
marcbowes pushed a commit to marcbowes/gptel that referenced this pull request Mar 19, 2025
*

* Fix: restore markdown formatting for o3-mini by commenting out nosystem capability (karthink#609)

* Delete nosystem capability for o3-mini and o1

According to testing, o3-mini and o1 now accept system prompts again, restoring
Markdown formatting if 'Formatting re-enabled' is included. However, 'o1-mini'
still rejects system prompts, so 'nosystem' remains for that model. (Refs karthink#609)

---------

Co-authored-by: chris <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants