long / llm_api /doubao_api.py
deeme's picture
Upload 111 files
217acfe verified
from openai import OpenAI
from .chat_messages import ChatMessages
doubao_model_config = {
"doubao-lite-32k":{
"Pricing": (0.0003, 0.0006),
"currency_symbol": '¥',
},
"doubao-lite-128k":{
"Pricing": (0.0008, 0.001),
"currency_symbol": '¥',
},
"doubao-pro-32k":{
"Pricing": (0.0008, 0.002),
"currency_symbol": '¥',
},
"doubao-pro-128k":{
"Pricing": (0.005, 0.009),
"currency_symbol": '¥',
},
}
def stream_chat_with_doubao(messages, model='doubao-lite-32k', endpoint_id=None, response_json=False, api_key=None, max_tokens=32000):
if api_key is None:
raise Exception('未提供有效的 api_key!')
if endpoint_id is None:
raise Exception('未提供有效的 endpoint_id!')
client = OpenAI(
api_key=api_key,
base_url="https://ark.cn-beijing.volces.com/api/v3",
)
stream = client.chat.completions.create(
model=endpoint_id,
messages=messages,
stream=True,
response_format={ "type": "json_object" } if response_json else None
)
messages.append({'role': 'assistant', 'content': ''})
content = ''
for chunk in stream:
if chunk.choices:
delta_content = chunk.choices[0].delta.content or ''
content += delta_content
messages[-1]['content'] = content
yield messages
return messages
if __name__ == '__main__':
pass