update inline generate prompt to leverage more explicit <|START| and |END|> spans
This commit is contained in:
parent
54c63063e4
commit
e8dd412ac1
2 changed files with 15 additions and 15 deletions
|
@ -544,16 +544,10 @@ impl AssistantPanel {
|
||||||
|
|
||||||
let multi_buffer = editor.read(cx).buffer().read(cx);
|
let multi_buffer = editor.read(cx).buffer().read(cx);
|
||||||
let multi_buffer_snapshot = multi_buffer.snapshot(cx);
|
let multi_buffer_snapshot = multi_buffer.snapshot(cx);
|
||||||
let snapshot = if multi_buffer.all_buffers().len() > 1 {
|
let snapshot = if multi_buffer.is_singleton() {
|
||||||
return;
|
multi_buffer.as_singleton().unwrap().read(cx).snapshot()
|
||||||
} else {
|
} else {
|
||||||
multi_buffer
|
return;
|
||||||
.all_buffers()
|
|
||||||
.iter()
|
|
||||||
.next()
|
|
||||||
.unwrap()
|
|
||||||
.read(cx)
|
|
||||||
.snapshot()
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let range = pending_assist.codegen.read(cx).range();
|
let range = pending_assist.codegen.read(cx).range();
|
||||||
|
@ -588,6 +582,8 @@ impl AssistantPanel {
|
||||||
codegen_kind,
|
codegen_kind,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
dbg!(&prompt);
|
||||||
|
|
||||||
let mut messages = Vec::new();
|
let mut messages = Vec::new();
|
||||||
let mut model = settings::get::<AssistantSettings>(cx)
|
let mut model = settings::get::<AssistantSettings>(cx)
|
||||||
.default_open_ai_model
|
.default_open_ai_model
|
||||||
|
|
|
@ -68,9 +68,13 @@ fn outline_for_prompt(
|
||||||
intersected = false;
|
intersected = false;
|
||||||
text.extend(iter::repeat(indent.as_str()).take(intersection_indent));
|
text.extend(iter::repeat(indent.as_str()).take(intersection_indent));
|
||||||
text.extend(buffer.text_for_range(extended_range.start..range.start));
|
text.extend(buffer.text_for_range(extended_range.start..range.start));
|
||||||
text.push_str("<|");
|
text.push_str("<|START|");
|
||||||
text.extend(buffer.text_for_range(range.clone()));
|
text.extend(buffer.text_for_range(range.clone()));
|
||||||
text.push_str("|>");
|
if range.start != range.end {
|
||||||
|
text.push_str("|END|>");
|
||||||
|
} else {
|
||||||
|
text.push_str(">");
|
||||||
|
}
|
||||||
text.extend(buffer.text_for_range(range.end..extended_range.end));
|
text.extend(buffer.text_for_range(range.end..extended_range.end));
|
||||||
text.push('\n');
|
text.push('\n');
|
||||||
}
|
}
|
||||||
|
@ -113,16 +117,16 @@ pub fn generate_content_prompt(
|
||||||
|
|
||||||
// Assume for now that we are just generating
|
// Assume for now that we are just generating
|
||||||
if range.clone().start == range.end {
|
if range.clone().start == range.end {
|
||||||
writeln!(prompt, "In particular, the user's cursor is current on the '<||>' span in the above outline, with no text selected.").unwrap();
|
writeln!(prompt, "In particular, the user's cursor is current on the '<|START|>' span in the above outline, with no text selected.").unwrap();
|
||||||
} else {
|
} else {
|
||||||
writeln!(prompt, "In particular, the user has selected a section of the text between the '<|' and '|>' spans.").unwrap();
|
writeln!(prompt, "In particular, the user has selected a section of the text between the '<|START|' and '|END|>' spans.").unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
match kind {
|
match kind {
|
||||||
CodegenKind::Generate { position } => {
|
CodegenKind::Generate { position } => {
|
||||||
writeln!(
|
writeln!(
|
||||||
prompt,
|
prompt,
|
||||||
"Assume the cursor is located where the `<|` marker is."
|
"Assume the cursor is located where the `<|START|` marker is."
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
writeln!(
|
writeln!(
|
||||||
|
@ -144,7 +148,7 @@ pub fn generate_content_prompt(
|
||||||
.unwrap();
|
.unwrap();
|
||||||
writeln!(
|
writeln!(
|
||||||
prompt,
|
prompt,
|
||||||
"You MUST reply with only the adjusted code, not the entire file."
|
"You MUST reply with only the adjusted code (within the '<|START|' and '|END|>' spans), not the entire file."
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue