feat: ask_code message support type list[str].

This commit is contained in:
刘棒棒 2023-11-21 12:01:28 +08:00
parent 4418fe8283
commit 657571a192
2 changed files with 12 additions and 1 deletions

View file

@ -262,9 +262,10 @@ class OpenAIGPTAPI(BaseGPTAPI, RateLimiter):
self._update_costs(rsp.get("usage"))
return rsp
def _process_message(self, messages: Union[str, Message, list[dict], list[Message]]) -> list[dict]:
def _process_message(self, messages: Union[str, Message, list[dict], list[Message], list[str]]) -> list[dict]:
"""convert messages to list[dict]."""
if isinstance(messages, list):
messages = [Message(msg) if isinstance(msg, str) else msg for msg in messages]
return [msg if isinstance(msg, dict) else msg.to_dict() for msg in messages]
if isinstance(messages, Message):

View file

@ -68,3 +68,13 @@ def test_ask_code_list_Message():
assert "language" in rsp
assert "code" in rsp
assert len(rsp["code"]) > 0
def test_ask_code_list_str():
llm = OpenAIGPTAPI()
msg = ["a=[1,2,5,10,-10]", "写出求a中最大值的代码python"]
rsp = llm.ask_code(msg) # -> {'language': 'python', 'code': 'max_value = max(a)\nmax_value'}
print(rsp)
assert "language" in rsp
assert "code" in rsp
assert len(rsp["code"]) > 0