Skip to content

Commit

Permalink
support streaming for functions (#6115)
Browse files Browse the repository at this point in the history
  • Loading branch information
hwchase17 authored Jun 13, 2023
1 parent 11ab0be commit e74733a
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions langchain/chat_models/openai.py
Original file line number Diff line number Diff line change
Expand Up @@ -321,16 +321,27 @@ def _generate(
inner_completion = ""
role = "assistant"
params["stream"] = True
function_call: Optional[dict] = None
for stream_resp in self.completion_with_retry(
messages=message_dicts, **params
):
role = stream_resp["choices"][0]["delta"].get("role", role)
token = stream_resp["choices"][0]["delta"].get("content", "")
token = stream_resp["choices"][0]["delta"].get("content") or ""
inner_completion += token
_function_call = stream_resp["choices"][0]["delta"].get("function_call")
if _function_call:
if function_call is None:
function_call = _function_call
else:
function_call["arguments"] += _function_call["arguments"]
if run_manager:
run_manager.on_llm_new_token(token)
message = _convert_dict_to_message(
{"content": inner_completion, "role": role}
{
"content": inner_completion,
"role": role,
"function_call": function_call,
}
)
return ChatResult(generations=[ChatGeneration(message=message)])
response = self.completion_with_retry(messages=message_dicts, **params)
Expand Down

0 comments on commit e74733a

Please sign in to comment.