Read attached chat images with a vision model.
Image uploads were treated as unknown documents and never shown to the model. PNG, JPEG, WebP, and GIF now go to Ollama vision, and history returns the image bytes. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
32f57c2376
commit
c21f052d5b
11 files changed
+387
-44
No files matched your search
@@ -257,6 +257,7 @@ class PromptSerializer(serializers.ModelSerializer):
|
||||
tokens_in = serializers.SerializerMethodField()
|
||||
tokens_out = serializers.SerializerMethodField()
|
||||
feedback = serializers.SerializerMethodField()
|
||||
image = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Prompt
|
||||
@@ -269,8 +270,10 @@ class PromptSerializer(serializers.ModelSerializer):
|
||||
"tokens_out",
|
||||
"citations",
|
||||
"feedback",
|
||||
"file_type",
|
||||
"image",
|
||||
)
|
||||
read_only_fields = ("citations", "feedback")
|
||||
read_only_fields = ("citations", "feedback", "file_type", "image")
|
||||
|
||||
def _token_pair(self, obj):
|
||||
cache = self.context.setdefault("_prompt_token_cache", {})
|
||||
@@ -314,6 +317,11 @@ class PromptSerializer(serializers.ModelSerializer):
|
||||
self.context["_prompt_feedback_by_id"] = by_prompt
|
||||
return by_prompt.get(obj.id)
|
||||
|
||||
def get_image(self, obj):
|
||||
from chat_backend.services.vision import image_base64
|
||||
|
||||
return image_base64(obj)
|
||||
|
||||
def validate_message(self, value: str) -> str:
|
||||
if value is None or not str(value).strip():
|
||||
raise serializers.ValidationError("Message text cannot be empty.")
|
||||
|
||||
Reference in new issue
Block a user