Agent actions and gral function. Need agent classes to separate advanced agent functionality.
This commit is contained in:
1 parent
c3e55e89f2
commit
9a8e68f021
8 files changed
+222
-53
No files matched your search
@@ -0,0 +1,39 @@
|
||||
from inference import LlamaMessage, replicate_llama_completion
|
||||
|
||||
message_format_section = """
|
||||
When suggesting code to the user, keep the code as small snippets.
|
||||
If the update is meant to be applied to a file, include a line linking the file immediately before the code block like this: "[filename.txt]
|
||||
```
|
||||
updated segment
|
||||
```"
|
||||
Omit the file link when the block is not related to a known file
|
||||
Code blocks must be under 30 lines. Assistant responses MUST NOT contain horizontal rules.
|
||||
When suggesting bash code meant to be directly executed, use the same syntax as above but marking the code block with "[eval]" instead."""
|
||||
|
||||
async def gral_message(app, system_prompt, message_history: list, file_map: dict):
|
||||
messages = [
|
||||
LlamaMessage("system", "\n".join([
|
||||
system_prompt,
|
||||
message_format_section,
|
||||
])),
|
||||
]
|
||||
|
||||
file_parts = []
|
||||
for filename, content in file_map.items():
|
||||
file_parts.append(f"\n---\n[{filename}]\n\n{content}\n")
|
||||
|
||||
if file_parts:
|
||||
file_lines = [
|
||||
"This message contains all files relevant to the prompt: each file section in this message starts with a horizontal rule, followed by the file name in square brackets, followed by the file content.",
|
||||
"Only this message contains horizontal rules, assistant responses must not include them.",
|
||||
"The prompt and conversation start in the next message after this."
|
||||
]
|
||||
file_lines.extend(file_parts)
|
||||
messages.append(
|
||||
LlamaMessage("user", "\n".join(file_lines))
|
||||
)
|
||||
|
||||
messages.extend([LlamaMessage(msg['role'], msg['content']) for msg in message_history])
|
||||
|
||||
response = await replicate_llama_completion(app, messages)
|
||||
return response
|
||||
Reference in new issue
Block a user