Merge pull request #7920 from envision3d/ollama-structured-output

feat: pass structured output format through to ollama
This commit is contained in:
Timothy Jaeryang Baek 2024-12-17 13:37:24 -08:00 committed by GitHub
commit a14c06fa0b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 1 deletions

View File

@ -917,7 +917,7 @@ class ChatMessage(BaseModel):
class GenerateChatCompletionForm(BaseModel): class GenerateChatCompletionForm(BaseModel):
model: str model: str
messages: list[ChatMessage] messages: list[ChatMessage]
format: Optional[str] = None format: Optional[dict] = None
options: Optional[dict] = None options: Optional[dict] = None
template: Optional[str] = None template: Optional[str] = None
stream: Optional[bool] = True stream: Optional[bool] = True

View File

@ -154,6 +154,9 @@ def convert_payload_openai_to_ollama(openai_payload: dict) -> dict:
) )
ollama_payload["stream"] = openai_payload.get("stream", False) ollama_payload["stream"] = openai_payload.get("stream", False)
if "format" in openai_payload:
ollama_payload["format"] = openai_payload["format"]
# If there are advanced parameters in the payload, format them in Ollama's options field # If there are advanced parameters in the payload, format them in Ollama's options field
ollama_options = {} ollama_options = {}