简单三步Xinference-v1.17.1在Jupyter中实现OpenAI兼容API无缝切换模型1. 准备工作与环境配置1.1 启动Xinference服务在Jupyter环境中启动Xinference服务非常简单只需执行以下命令!xinference-local --host 127.0.0.1 --port 9997 --log-level WARNING /tmp/xinference.log 21 这个命令会在后台启动Xinference服务监听本地9997端口。为了确保服务已正常启动可以检查日志!cat /tmp/xinference.log | tail -5如果看到类似Xinference is running at http://127.0.0.1:9997的输出说明服务已成功启动。1.2 验证服务可用性让我们用Python代码快速验证服务是否可用import requests response requests.get(http://127.0.0.1:9997/v1/models) if response.status_code 200: print(Xinference服务运行正常) else: print(f服务异常状态码{response.status_code})2. 加载模型与API兼容设置2.1 选择并加载模型Xinference支持多种开源大语言模型我们可以轻松加载一个模型from xinference.client import Client client Client(http://127.0.0.1:9997) # 加载一个轻量级模型适合快速测试 model_uid client.launch_model( model_namephi-3-mini, model_size_in_billions3.8, quantizationq4_k_m ) print(f模型加载完成UID: {model_uid})2.2 设置OpenAI兼容APIXinference原生支持OpenAI兼容API这意味着你可以直接使用OpenAI的Python客户端from openai import OpenAI # 创建兼容OpenAI的客户端 oai_client OpenAI( base_urlhttp://127.0.0.1:9997/v1, api_keynot-needed # Xinference不需要API密钥 )3. 实际应用与模型切换3.1 使用OpenAI风格API调用模型现在你可以像使用OpenAI API一样调用本地模型response oai_client.chat.completions.create( modelmodel_uid, messages[ {role: system, content: 你是一个有帮助的AI助手}, {role: user, content: 用简单的语言解释什么是机器学习} ], temperature0.7, max_tokens150 ) print(response.choices[0].message.content)3.2 无缝切换不同模型Xinference的强大之处在于可以轻松切换不同模型。例如如果你想换用更大的模型# 加载另一个模型 new_model_uid client.launch_model( model_nameqwen2, model_size_in_billions7, quantizationq4_k_m ) # 使用相同的API调用新模型 response oai_client.chat.completions.create( modelnew_model_uid, messages[ {role: system, content: 你是一个有帮助的AI助手}, {role: user, content: 用简单的语言解释什么是机器学习} ], temperature0.7, max_tokens150 ) print(response.choices[0].message.content)3.3 高级功能函数调用Xinference也支持OpenAI风格的函数调用功能# 定义可用函数 functions [ { name: get_current_weather, description: 获取当前天气信息, parameters: { type: object, properties: { location: { type: string, description: 城市名称 } }, required: [location] } } ] # 发起带函数调用的请求 response oai_client.chat.completions.create( modelmodel_uid, messages[{role: user, content: 北京现在的天气怎么样}], functionsfunctions, function_callauto ) print(response.choices[0].message)4. 总结与最佳实践通过以上三个简单步骤我们成功在Jupyter环境中部署了Xinference并实现了OpenAI兼容API的功能。这种方法的主要优势包括无缝兼容现有基于OpenAI API的代码几乎无需修改灵活切换可以轻松尝试不同的开源模型本地运行数据无需离开本地环境保障隐私安全成本节约相比商业API长期使用成本显著降低对于日常使用建议开始可以先使用轻量级模型如phi-3-mini进行快速测试生产环境可以考虑更强大的模型如qwen2-7b或llama-3-8b定期检查Xinference的更新获取对新模型的支持获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。