|  | @@ -3,6 +3,7 @@ from __future__ import annotations
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import json
 | 
	
		
			
				|  |  |  import logging
 | 
	
		
			
				|  |  | +from json import JSONDecodeError
 | 
	
		
			
				|  |  |  from typing import (
 | 
	
		
			
				|  |  |      Any,
 | 
	
		
			
				|  |  |      Dict,
 | 
	
	
		
			
				|  | @@ -223,11 +224,24 @@ class Wenxin(LLM):
 | 
	
		
			
				|  |  |          for token in self._client.post(request).iter_lines():
 | 
	
		
			
				|  |  |              if token:
 | 
	
		
			
				|  |  |                  token = token.decode("utf-8")
 | 
	
		
			
				|  |  | -                completion = json.loads(token[5:])
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                yield GenerationChunk(text=completion['result'])
 | 
	
		
			
				|  |  | -                if run_manager:
 | 
	
		
			
				|  |  | -                    run_manager.on_llm_new_token(completion['result'])
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                if completion['is_end']:
 | 
	
		
			
				|  |  | -                    break
 | 
	
		
			
				|  |  | +                if token.startswith('data:'):
 | 
	
		
			
				|  |  | +                    completion = json.loads(token[5:])
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    yield GenerationChunk(text=completion['result'])
 | 
	
		
			
				|  |  | +                    if run_manager:
 | 
	
		
			
				|  |  | +                        run_manager.on_llm_new_token(completion['result'])
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    if completion['is_end']:
 | 
	
		
			
				|  |  | +                        break
 | 
	
		
			
				|  |  | +                else:
 | 
	
		
			
				|  |  | +                    try:
 | 
	
		
			
				|  |  | +                        json_response = json.loads(token)
 | 
	
		
			
				|  |  | +                    except JSONDecodeError:
 | 
	
		
			
				|  |  | +                        raise ValueError(f"Wenxin Response Error {token}")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    raise ValueError(
 | 
	
		
			
				|  |  | +                        f"Wenxin API {json_response['error_code']}"
 | 
	
		
			
				|  |  | +                        f" error: {json_response['error_msg']}, "
 | 
	
		
			
				|  |  | +                        f"please confirm if the model you have chosen is already paid for."
 | 
	
		
			
				|  |  | +                    )
 |