Package: generate-core
GenerateOne API to Access World-Class Generative Models.简介Generate Package 允许用户通过统一的 api 访问跨平台的生成式模型，当前支持：OpenAIAzure阿里云-百炼阿里云-灵积百川智能腾讯云-混元Minimax百度智能云智谱月之暗面DeepSeek...Features多模态，支持文本生成，多模态文本生成，结构体生成，图像生成，语音生成...跨平台，完整支持 OpenAI，Azure，Minimax，智谱，月之暗面，文心一言 在内的国内外多家平台One API，统一了不同平台的消息格式，推理参数，接口封装，返回解析，让用户无需关心不同平台的差异异步和流式，提供流式调用，非流式调用，同步调用，异步调用，异步批量调用，适配不同的应用场景自带电池，提供 UI，输入检查，参数检查，计费，速率控制，ChatEngine,function call等功能高质量代码，100% typehints，pylance strict, ruff lint & format,  test coverage > 85% ...完整支持是指，只要是平台提供的功能和参数，generate包都原生支持，不打折扣！比如，OpenAI 的 Function Call, Tool Calls，MinimaxPro 的 Plugins 等基础使用安装pipinstallgenerate-core启动 chainlit UIpython-mgenerate.ui# help# python -m generate.ui --help文本生成fromgenerateimportOpenAIChatmodel=OpenAIChat()model.generate('你好，GPT！',temperature=0,seed=2023)# ----- Output -----ChatCompletionOutput(model_info=ModelInfo(task='chat_completion',type='openai',name='gpt-3.5-turbo-0613'),cost=0.000343,extra={'usage':{'prompt_tokens':13,'completion_tokens':18,'total_tokens':31}},message=AssistantMessage(role='assistant',name=None,content='你好！有什么我可以帮助你的吗？',function_call=None,tool_calls=None),finish_reason='stop')多模态文本生成fromgenerateimportOpenAIChatmodel=OpenAIChat(model='gpt-4-vision-preview')user_message={'role':'user','content':[{'text':'这个图片是哪里？'},{'image_url':{'url':'https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg'}},],}model.generate(user_message,max_tokens=1000)# ----- Output -----ChatCompletionOutput(model_info=ModelInfo(task='chat_completion',type='openai',name='gpt-4-1106-vision-preview'),cost=0.10339000000000001,extra={'usage':{'prompt_tokens':1120,'completion_tokens':119,'total_tokens':1239}},message=AssistantMessage(role='assistant',name=None,content='这张图片显示的是一名女士和一只狗在沙滩上。他们似乎在享受日落时分的宁静时刻',function_call=None,tool_calls=None),finish_reason='stop')结构体生成fromgenerateimportOpenAIChatfrompydanticimportBaseModelclassCountry(BaseModel):name:strcapital:strmodel=OpenAIChat().structure(instruction='Extract Country from the text.',output_structure_type=Country)model.generate('Paris is the capital of France and also the largest city in the country.')# ----- Output -----StructureModelOutput(model_info=ModelInfo(task='chat_completion',type='openai',name='gpt-3.5-turbo-0613'),cost=0.000693,extra={'usage':{'prompt_tokens':75,'completion_tokens':12,'total_tokens':87}},structure=Country(name='France',capital='Paris'))图像生成fromgenerateimportOpenAIImageGenerationmodel=OpenAIImageGeneration()model.generate('black hole')# ----- Output -----ImageGenerationOutput(model_info=ModelInfo(task='image_generation',type='openai',name='dall-e-3'),cost=0.56,extra={},images=[GeneratedImage(url='https://oaidalleapiprodscus.blob.core.windows.net/...',prompt='Visualize an astronomical illustration featuring a black hole at its core. The black holeshouldbeportrayedwithstronggravitationallensingeffectthatdistortsthelightaroundit.Includeasurroundingaccretiondisk,glowingbrightlywithblueandwhitehues,streakedwithshadesofredandorange,indicatingheatandintenseenergy.Thecosmosinthebackgroundshouldbefilledwithdistantstars,galaxies,andnebulas,illuminatingthevast,infinitespacewithspecksoflight.',image_format='png',content=b'<image bytes>')])语音生成fromgenerateimportMinimaxSpeechmodel=MinimaxSpeech()model.generate('你好，世界！')# ----- Output -----TextToSpeechOutput(model_info=ModelInfo(task='text_to_speech',type='minimax',name='speech-01'),cost=0.01,extra={},audio=b'<audio bytes>',audio_format='mp3')限制请求速率fromgenerateimportOpenAIChat# max 4 requests per 10 secondsmodel=OpenAIChat(model='gpt-4-vision-preview').limit(max_generates_per_time_window=4,num_seconds_in_time_window=10,)多种调用方式fromgenerateimportOpenAIChatmodel=OpenAIChat()forstream_outputinmodel.stream_generate('介绍一下唐朝'):print(stream_output.stream.delta,end='',flush=True)# 同步调用，model.generate# 异步调用，model.async_generate# 流式调用，model.stream_generate# 异步流式调用，model.async_stream_generate# 批量调研，model.batch_generate# 异步批量调用，model.async_batch_generate支持多种模型fromgenerate.chat_completionimportChatModelRegistryprint('\n'.join(list(ChatModelRegistry.keys())))# ----- Output -----azureopenaiminimax_prominimaxzhipuzhipu_characterwenxinhunyuanbaichuanbailiandashscopedashscope_multimodalmoonshotdeepseek