Comments (4)
I think switching the system prompt half-way through a conversation is an edge case. You already addressed it through your last system prompt (which could also be an injected user message btw.).
Given that the recommend default is to have the system prompt first, and your situation is an edge case with a workaround, I'll close this issue.
from ai.
Thanks for the quick response @lgrammel
Yeah I have checked the ai/rsc package and apparently, you are injecting the system prompt as a user
message:
case 'prompt': {
languageModelMessages.push({
role: 'user',
content: [{ type: 'text', text: prompt.prompt }],
});
break;
}
Do you know why it is recommended to have the system prompt first? As written it seems to me to lose attention if the message array gets too long. It could even get cropped if we go above the max_tokens for an API request.
Closing is fine for me.
from ai.
a) no we are not, this is the prompt and not the system message
b) it's recommend to have the system prompt first because that's how the language models are trained. they get lots of examples where the system prompt (inside special tokens) comes at the beginning.
that being said, i understand your issue and ran into it myself. adding a system or user message as the final message can help (i've done this as well), but it is up to you to add it, and it can lead to issues with e.g. tool calls and tool results.
from ai.
Okay, thanks for the response and the feedback.
I will try my best to bend it towards my needs then :) I haven't tried with tools calling yet.
from ai.
Related Issues (20)
- More granular control over supported 3rd party API provider features
- Support dangerouslyAllowBrowser for Anthropic HOT 5
- Support image input in Mistral provider HOT 1
- Invalid Type Checking on Tool Call Result HOT 1
- Send `data` or custom fields from `streamText` to `useChat` similar to `annotations`
- SDK web is down (Times out) HOT 2
- generate assistant message id from backend side HOT 1
- Support Partial Tool Results / AsyncGenerator for Tool Calls in streamText
- Vue3 can't access toolResponse client side HOT 14
- Unable to ask question that uses two tools with streamText and AWS Bedrock HOT 7
- experimental_useObject is not supporting `headers` parameter HOT 1
- AIState does not update correctly with parallel StreamUI calls
- Claude Prompt Caching for System Message broken HOT 1
- Get tool returns on client side.
- The streamable UI has been slow to update. This may be a bug or a performance issue or you forgot to call .done()
- should give at least a warning when user submits an empty request in `useChat`
- Abort Signal not forwarded with Bedrock
- Allow vertex to work on Vercel-Edge HOT 1
- Issues generating text with anthropic HOT 5
- Svelte 5 Support HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ai.