Web search query should not be considered required
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Inizia da openai-java-core/src/main/kotlin/com/openai/core/RequestOptions.kt e openai-java-core/src/main/kotlin/com/openai/models/responses/ResponseOutputItem.kt, in particolare validate(), quindi segui la gestione di AsyncStreamResponse per response.output_item.added. Riproduci il payload della ricerca web con responseValidation=true e confrontalo con responseValidation=false. Il lavoro è completato quando gli eventi iniziali della ricerca web vengono gestiti senza perdere la validazione dei dati successivi della risposta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Using com.openai:openai-java:2.19.1
Unclear if this is a bug or if it's working as designed, so bare with me 😅
When settingresponseValidation=true within RequestOptions streaming responses aborts when the server emits an early web search item via response.output_item.added because the payload doesn't have a search query set.
Here's that payload (no query item here yet):
{
"type": "response.output_item.added",
"sequence_number": 2,
"output_index": 0,
"item": {
"id": "ws_68877a8f32148198991d63ef036cf83f0d6f8dff2e2dac1b",
"type": "web_search_call",
"status": "in_progress",
"action": {
"type": "search"
}
}
}
The SDK calls validate() before my handler runs and throws the following:
java.util.concurrent.CompletionException: com.openai.errors.OpenAIInvalidDataException: `query` is not set
at com.openai.core.http.AsyncStreamResponseKt$toAsync$1$subscribe$1$2.invoke(AsyncStreamResponse.kt:125)
…
Caused by: com.openai.errors.OpenAIInvalidDataException: `query` is not set
When responseValidation=false I do get the ResponseOutputItemAddedEvent sent back to me (without the validation failing)
ResponseOutputItemAddedEvent{item=ResponseOutputItem{webSearchCall=ResponseFunctionWebSearch{id=ws_12345, action=Action{search=Search{query=, type=search, additionalProperties={}}}, status=in_progress, type=web_search_call, additionalProperties={}}}, outputIndex=0, sequenceNumber=2, type=response.output_item.added, additionalProperties={}}
And can lean on the ResponseCompletedEvent to gather a response with the appropriate web results added
So to conclude, this is what happens:
- sending in a query: "use web search tool to find what the top 5 sneakers in US are"
- my handler captures ResponseCreatedEvent
- my handler captures ResponseInProgressEvent
ResponseStreamEvent{inProgress=ResponseInProgressEvent{response=Response{id=resp_123, createdAt=1.753712842E9, error=null, incompleteDetails=null, instructions=Instructions{**instructions**}
, additionalProperties={}}}, Tool{webSearch=WebSearchTool{type=web_search_preview, searchContextSize=medium, userLocation=UserLocation{type=approximate, city=null, country=US, region=null, timezone=null, additionalProperties={}}, additionalProperties={}}}], topP=1.0, background=false, maxOutputTokens=null, maxToolCalls=null, previousResponseId=resp_123, prompt=, reasoning=Reasoning{effort=null, generateSummary=, summary=null, additionalProperties={}}, serviceTier=auto, status=in_progress, text=ResponseTextConfig{format=ResponseFormatTextConfig{text=ResponseFormatText{type=text, additionalProperties={}}}, additionalProperties={}}, topLogprobs=0, truncation=disabled, usage=null, user=null, additionalProperties={store=true, safety_identifier=null, prompt_cache_key=null}}, sequenceNumber=1, type=response.in_progress, additionalProperties={}}}
- receives the web search call in ResponseOutputItemAddedEvent
ResponseOutputItemAddedEvent{item=ResponseOutputItem{webSearchCall=ResponseFunctionWebSearch{id=ws_1234, action=Action{search=Search{query=, type=search, additionalProperties={}}}, status=in_progress, type=web_search_call, additionalProperties={}}}, outputIndex=0, sequenceNumber=2, type=response.output_item.added, additionalProperties={}}
and calls this before it gets back to us, but should it be validating at this point? Also I'm unsure when the query actually gets set, but I'm seeing this in the openAi docs mentioning query may / may not be set at all times
ResponseFunctionWebSearch{id=ws_1234, action=Action{search=Search{query=, type=search, additionalProperties={}}}, status=in_progress, type=web_search_call, additionalProperties={}}
- we still like
responseValidation=trueto be enforced
- Lingua principale
- Kotlin
- Stelle
- 1.5k
- Fork
- 264
- Merge medio
- 13h 31m
- PR unite (30g)
- 89
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di openai/openai-java
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
openai/openai-java#890 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
openai/openai-java#886 · 2 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
openai/openai-java#802 · 2 commenti · 3 reazioni ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
openai/openai-java#755 · 1 commento ·
-
bug sdk
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
openai/openai-java#652 · 2 commenti ·
Tutte le issue di openai/openai-java
Issue simili
-
[Bug] 统计页面无法重置token和汇率 Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
AAswordman/Operit#1265 · 3 commenti ·
-
Source is down
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
keiyoushi/extensions-source#19317 ·
-
Tambahkan bahasa Indonesia Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
acristescu/OnlineGo#216 ·
-
Remove custom segment colors Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
libre-tube/LibreTube#8803 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100