Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions devchat/llm/chat.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@ def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs): # pylint: disable=unused-argument
nonlocal prompt, memory, model, llm_config
prompt = prompt.format(**kwargs)
prompt_new = prompt.format(**kwargs)
messages = memory.contexts() if memory else []
if not any(item["content"] == prompt for item in messages) and prompt:
messages.append({"role": "user", "content": prompt})
if not any(item["content"] == prompt_new for item in messages) and prompt_new:
messages.append({"role": "user", "content": prompt_new})
if "__user_request__" in kwargs:
messages.append(kwargs["__user_request__"])
del kwargs["__user_request__"]
Expand All @@ -68,7 +68,7 @@ def wrapper(*args, **kwargs): # pylint: disable=unused-argument

if memory:
memory.append(
{"role": "user", "content": prompt},
{"role": "user", "content": prompt_new},
{"role": "assistant", "content": response["content"]},
)
return response["content"]
Expand All @@ -88,10 +88,10 @@ def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs): # pylint: disable=unused-argument
nonlocal prompt, memory, model, llm_config
prompt = prompt.format(**kwargs)
prompt_new = prompt.format(**kwargs)
messages = memory.contexts() if memory else []
if not any(item["content"] == prompt for item in messages):
messages.append({"role": "user", "content": prompt})
if not any(item["content"] == prompt_new for item in messages):
messages.append({"role": "user", "content": prompt_new})

llm_config["model"] = model
response = chat_completion_no_stream_return_json(messages, llm_config=llm_config)
Expand All @@ -100,7 +100,7 @@ def wrapper(*args, **kwargs): # pylint: disable=unused-argument

if memory:
memory.append(
{"role": "user", "content": prompt},
{"role": "user", "content": prompt_new},
{"role": "assistant", "content": json.dumps(response)},
)
return response
Expand Down
4 changes: 3 additions & 1 deletion tests/test_cli_prompt.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,9 @@ def test_prompt_with_function_replay(git_repo, functions_file): # pylint: disab

content = get_content(result.output)
assert result.exit_code == 0
assert 'get_current_weather' in content or 'GetCurrentWeather' in content
assert 'get_current_weather' in content \
or 'GetCurrentWeather' in content \
or 'getCurrentWeather' in content


def test_prompt_without_repo(mock_home_dir): # pylint: disable=W0613
Expand Down