Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] <title>vllm部署调用报错:TypeError: Unknown image model type: minicpmo #742

Open
2 tasks done
cheng358 opened this issue Jan 17, 2025 · 8 comments
Open
2 tasks done
Assignees

Comments

@cheng358
Copy link

是否已有关于该错误的issue或讨论? | Is there an existing issue / discussion for this?

  • 我已经搜索过已有的issues和讨论 | I have searched the existing issues / discussions

该问题是否在FAQ中有解答? | Is there an existing answer for this in FAQ?

  • 我已经搜索过FAQ | I have searched FAQ

当前行为 | Current Behavior

vllm方式部署minicpm-o-2.6:
请求参数:
{
"model": "MiniCPM",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "图中人物是什么性别"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/wAARCAHmAwADAREAAhEBAxEB/8QBogAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoLEAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+foBAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKCxEAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9sAhAAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQyAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/2gAMAwEAAhEDEQA/APn+gAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAMUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAGKAFpgLg+lACUAFIBKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAJFhkIB2Ng98VSTYM2bXw5cXDfNgIMZI6D8a0VPuRzGsujaTZRb5Ns8g7bsiq5IoXMVbi/sol/d2sSEdwgp2iFzMfVJiSFCbD/AAlAakZAyxXLbuIm7gDipaC5XkiKHHWlYdyMioaHcbikMSgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAs2VnLfXSW8Iy7HHJ4FXGN2Js6ld2kWgtfMt5pEP3o+a0VkrEWbM+41meVfLcggdAQRijnDlM97uU5AG33FQ5lcpA298scmnzC5WJ5bAZwaYEqQts3dKBMlcL5R3jLCmJEMsERj82FycfeQ9RUtFFQioaKuNqRiUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAC0ALinYDU0b7Os7vPuIVflAPU+9XBJMhmjpml3PiPWhZafCuW5Zjnai92NTN2NIQueq6R8NNKsIg1yDdzY5eTp+ArByZ0RgkaFz4b0vymjNjAU6fcFRzO5pZWOM8U+GbG10xZLSEJ+8G76e1a022zGqkkefXY2yMFHBPHHUetdBykRm+QejDnFMTIpW3AYoAjDbWz19aBkbdeKTQyM9TWbRSEpAJQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAC0AFADqaAfHI0ZO04yMGquKx778INFgsfCjapImbi/kYgkfwLwB+YJrOWprDRHdXTAIcKBWbRtHVGLeOPKPvUNGiOL8Y/8AIvStjJRgzfTpV0tGZVloeYzypK6up5RMfXiuo4zKfKBUI565pgMzQAUAMNDAYRyazZSG1IxKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAWgBRTQC0xFiytJb6/gtIRmWaQIg9ycUh9D6j0mbTNK0uy0q2nR47aFUBXnOByfz5qWzeK0MXUvE1/Ndm20vTPPx1kY4AFRoyknbQz5tVvo8C9tGT1K8gflSaRpG5WumS+idGTdHIuCPalew2uY851zQpNHUmMl4Hb5T3HtW8JXOWdOxzZjkupUSFGdzxtA5q3Kxik3ojVHha8+wfadyluRsHPI7fXg0uY19lKxigZppmViM9cVQhjd6ljQyoZQlIBKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA6+68HJbeDbXWHvCLqeLzxBs+UJuwOfXgmg2VJ8vMcietBiJQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUALTAWgAoAW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DSG5jmvO7nYNqQENABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQB0fgSyjvvGulRTf6pJvOfP91AXI/8AHaRUVdnusuvsZCoUc5+akzqjEwfE8m22+0BtyMvmbvUEZH6YpGiMTwNcx3+jajGJVNx9oDEMcfJtwP1zTtqJSurnB6jbTaZrlzbzsjENyyNuVhngiu7Dbnm4m7YBSDlc16C2OFjhKR8rdaTENLgEH0YGpGgPM5z1LHAouMtGRujSHHA2ntVITQebGgyWHFNysRymfPcmeX6VnzXZqo2Rp2z+XYnfGMk8GtEZslt5ZEBymPSkybIZczyMw+bC+mKkaKMpyeaTNEVm71nItGVMmyVl9K8+as7HXF3I6zKGmgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAu6bqVzpd2lzayFJVBGfY9R+NA07PQ9f0PUo9X0j7QGyzLsYejjr+hFSdkHdFzU41ufCNoshAZYfKb2K5X+lBb2PGPtE1nIY4nkhZflYqcE896pI5nLlVg8x5W3u7M3qTmuqPuo5Ju8rmnZ3KsuxuGFdtOV9zklGxLPGp5HWr6ElUHaeRnHaoYDTM01yruAOw28VKlqaKNkRXNyScA8CplUsVGBHGxeMmkpXHJWJbOJppwFXOT0q6cbkVHodJcW7wW0ZkhYDpk4xXTsjmvoVwju2f0zUNDIbldnUYP1pMaM+RuazbNIld2rN6mqKNzkuD6iuSstbm1PYr1gaiGgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoABQB0/hDxAmkTyxXLkW0mGyBnaw/+tSNqU7PU27nxHBdag9ra3BaCU71OCAGPUfj/AFppG0aiOe1uxZZ1ukU7XOGIHQ1cbPQwrb3M4I0ZKupDAkHNbqJyNksYIwwzXTDYxky2HZl5Jra+hmREkEmokNLUqyXBGQBisXI3UdSuSTyaxldmi3LUIxbZ9TitYLQyma+j2paQOc4Xmu2nGyOerK5p3bNIyJk4znFWzEjIwOlSMp3Z4FQykZ71nI1iQHk1maoq3H3fxrnq7GsCpXKahQAlABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUASwSmKUMCRjuOtNLUd2j0jVdMjZZJlMjwzbXCnGxQR+p713rDp+8jF12lZnMXunFB5ysW6ZBOeKtU7GDqDYkXywMVaRk5XHNbvs3BDiqQJldxxSaKRSljxk+tYzibJkDD5VI/GsnsarcvWkLSJFjlckmuiktDCbszqrKJPK/d4wBk4rrRysUwl2aTr2FBJDImByRUsZn3TL0zzUMtFCTkVkzRFfHOag0TK1yPk/GsKq901gypXIbCUAJQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFACjrQgPW9FP9reErAyEF0j2H/gJwD+QFexhnzUzgrK0zJ1m1+zoQgzgY+taSVjG5zq7l5INZlDpLh3GCcCgZVkY5pNmiIJT8tZTZoiqemPesZbGq3L8SkRQgd1z+prqpLQ56j1Ny1Ro7Vn3YBroRzPcmhEpTHGPrTAJV9/rUsDNuFjDjJOPas2WipIy9BnHvWbNEQmoLRVueVFY1FoawKhHHSuaxtcaRzUtDEpAJQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAAoA9T8DMW8Nx8/dlcfyNethP4ZxV/iLurorA8Culq5zHL3VsNp2jms3EaZT+xMRluBRyl3Kc21MhRkjvWckaRKUmT1rBmiIcVLRdzTCgCEDpsFdUNkc09zXnDCOCMHG7nFbsx6mlFF+76UgK9ym0UmCMe6XkGs2Wimy81ky0Rkdaksq3HQVnM1gVj0rnZqNYc1mykMqRiUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQB6b8Opd+jTw9Ss5/VRj+Rr1cE/cscmJWpsagm4kGus5DFkjUHmkwM27OcqOlQxoyZlAzWUjWLKUgGayaNkyuR8w+tR1LibVhEJmtkyM528/WuuictR2kaqKJ9XfBzHANo9zWi3MtkbCAbRVCK0yoxORmoYzJv0G0AKKzZSMmTg1lI0RA3epLRUuDyKwqM2gVyeKxNRpqWNDKgYlABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAooA734Zyf6XfRk8FFIH4mvQwL96xzYlaXOm1BsyMK9BnEYc74NS2BmznOTUsEZk561m0aIpyVlI1iVjzms2ao1dLlKeVJwdmW/I5rpoM560dTe0dC0Mkx+9IxY1ujKW5pk4XimIqv0NSwMi6c7uTxWTKRlzNlqykaIhNQy0Ubg/NXPV3N4LQgJrFs1EJqbjGmkAlABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAo60Adh8OpRH4gkjJwJIT+hFduCdpmFde6ddqbbLh19zXps4DEmbJNQBRmGaGBnzLyazZoijKMZrKSNYlbFZNmqL9gf9Fk9Rkfnit6BlWOp05DFbpz9a6locz3Lzc9KAIJAdp+lQwOfv25xWbKRmsc1mzREZOATWbNEZ8pzIa5qr1OiC0IjWLZY01IxKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAUUAbHhi9+w+ILSUn5S+xvoeK6KEuWoRUV4nf8AiOTyb5h68ivYZ5hhl2bmpYEUnIpAUZu9ZsuJnzVlI2iVe9Ys1Rc04/JKv+0K2w71M6+x28aAKB6Cu1nKyQDipAbIvyGpYHMajxIR71mykZzVmzREL9CKzZpHcoSn5zXJU3OmOxFWTLEpAJQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAAKAHo5Rgy8MDkGrjpID1bVWW9tbK8Az50CP8AmBXtRleCZ5c1aRjMmKbViSJ04qQKFyME1DLiZk1YyNolbvWXU16E+nOVuGA/vKf1q8P8RNZe6egED7y9K70cbZG7YOBSYDwCU571IHKaif37fWs5Foz2rM0W5FKcITWcnoXDczGbcSa4G9TrSG1IxDQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQACgBaAPTtLc3Hg/TXbqqsn5MRXtYbWlqediNJFVh8xFaMyGSABCaQGTcnLNUMuJmTdawmbRKxrJ7mq2JLD/AI+iPUGii/fFU+E7/S2+0ebG3ZWYfgK9M4hi/MahjL4jCxCkBxOoc3L/AFNZyKRRPSsmaLcr3B/dGsqvwmtP4jNrhOpBSAQ0AFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAf//ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
}
}
]
}
],
"stream": false
}

后端报错:File "/mnt/new_afs/demo/models/MiniCPM-o-2_6/minicpmo/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/mnt/new_afs/demo/models/MiniCPM-o-2_6/minicpmo/lib/python3.10/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/mnt/new_afs/demo/models/MiniCPM-o-2_6/minicpmo/lib/python3.10/site-packages/starlette/routing.py", line 715, in call
await self.middleware_stack(scope, receive, send)
File "/mnt/new_afs/demo/models/MiniCPM-o-2_6/minicpmo/lib/python3.10/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/mnt/new_afs/demo/models/MiniCPM-o-2_6/minicpmo/lib/python3.10/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/mnt/new_afs/demo/models/MiniCPM-o-2_6/minicpmo/lib/python3.10/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/mnt/new_afs/demo/models/MiniCPM-o-2_6/minicpmo/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/mnt/new_afs/demo/models/MiniCPM-o-2_6/minicpmo/lib/python3.10/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/mnt/new_afs/demo/models/MiniCPM-o-2_6/minicpmo/lib/python3.10/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
File "/mnt/new_afs/demo/models/MiniCPM-o-2_6/minicpmo/lib/python3.10/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
File "/mnt/new_afs/demo/models/MiniCPM-o-2_6/minicpmo/lib/python3.10/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/utils.py", line 54, in wrapper
return handler_task.result()
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/openai/api_server.py", line 377, in create_chat_completion
generator = await handler.create_chat_completion(request, raw_request)
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/openai/serving_chat.py", line 159, in create_chat_completion
) = await self._preprocess_chat(
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/openai/serving_engine.py", line 379, in _preprocess_chat
conversation, mm_data_future = parse_chat_messages_futures(
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/chat_utils.py", line 945, in parse_chat_messages_futures
sub_messages = _parse_chat_message_content(
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/chat_utils.py", line 873, in _parse_chat_message_content
result = _parse_chat_message_content_parts(
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/chat_utils.py", line 776, in _parse_chat_message_content_parts
parse_res = _parse_chat_message_content_part(
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/chat_utils.py", line 833, in _parse_chat_message_content_part
mm_parser.parse_image(str_content)
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/chat_utils.py", line 568, in parse_image
placeholder = self._tracker.add("image", image_coro)
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/chat_utils.py", line 452, in add
return self._placeholder_str(modality, current_count)
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/chat_utils.py", line 420, in _placeholder_str
raise TypeError(f"Unknown {modality} model type: {model_type}")
TypeError: Unknown image model type: minicpmo

期望行为 | Expected Behavior

No response

复现方法 | Steps To Reproduce

No response

运行环境 | Environment

- OS:
- Python:
- Transformers:
- PyTorch:
- CUDA (`python -c 'import torch; print(torch.version.cuda)'`):

备注 | Anything else?

No response

@YuzaChongyi
Copy link
Collaborator

MiniCPM-o 2.6 请参考这部分进行 vllm 部署

@cheng358
Copy link
Author

MiniCPM-o 2.6 请参考这部分进行 vllm 部署

我是参考这部分部署的,是使用vllm的api_server部署的,服务也能部署成功,我试了下纯聊天的可以,但是输入图片就报错了

@HwwwwwwwH
Copy link
Contributor

MiniCPM-o 2.6 请参考这部分进行 vllm 部署

我是参考这部分部署的,是使用vllm的api_server部署的,服务也能部署成功,我试了下纯聊天的可以,但是输入图片就报错了

Sry for it... We've fixed this. Please try it again.

@cheng358
Copy link
Author

cheng358 commented Jan 17, 2025

MiniCPM-o 2.6 请参考这部分进行 vllm 部署

我是参考这部分部署的,是使用vllm的api_server部署的,服务也能部署成功,我试了下纯聊天的可以,但是输入图片就报错了

Sry for it... We've fixed this. Please try it again.

Do I need to download VLLM again?
I feel like it should be

@HwwwwwwwH
Copy link
Contributor

Make sure your code are from our repository(the forked vllm) and in branch minicpmo. Then pull the new code and run it again.

@cheng358
Copy link
Author

Make sure your code are from our repository(the forked vllm) and in branch minicpmo. Then pull the new code and run it again.

Okay, I'll give it a try

@cheng358
Copy link
Author

cheng358 commented Jan 18, 2025

Audio has the same issue
input:
{
"model": "MiniCPM",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "分析下音频的内容"
},
{
"type": "audio_url",
"audio_url": {
"url": "http://localhost:8080/demo.wav"
}
}
]
}
],
"stream": false
}

error: mm_parser.parse_audio(str_content)
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/chat_utils.py", line 574, in parse_audio
placeholder = self._tracker.add("audio", audio_coro)
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/chat_utils.py", line 452, in add
return self._placeholder_str(modality, current_count)
File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/chat_utils.py", line 427, in _placeholder_str
raise TypeError(f"Unknown model type: {model_type}")
TypeError: Unknown model type: minicpmo

@HwwwwwwwH
Copy link
Contributor

Audio has the same issue input: { "model": "MiniCPM", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "分析下音频的内容" }, { "type": "audio_url", "audio_url": { "url": "http://localhost:8080/demo.wav" } } ] } ], "stream": false }

error: mm_parser.parse_audio(str_content) File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/chat_utils.py", line 574, in parse_audio placeholder = self._tracker.add("audio", audio_coro) File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/chat_utils.py", line 452, in add return self._placeholder_str(modality, current_count) File "/mnt/new_afs/demo/cmpo/vllm/vllm/entrypoints/chat_utils.py", line 427, in _placeholder_str raise TypeError(f"Unknown model type: {model_type}") TypeError: Unknown model type: minicpmo

Unfortunately, we regret to that audio inference is currently not supported. I'm trying to get it supported these days. You can refer to this PR of vllm. vllm-project/vllm#12069

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants