EsempioscriptintermediateEseguibileresearch-brief
Ricerca File
Esempio rieseguibile intermediate di tipo script che usa openai, requests.
Fatti chiave
- Livello
- intermediate
- Runtime
- Python • API OpenAI
- Pattern
- Ricerca supportata dal contesto con evidenza esplicita
- Interazione
- Sandbox live • Script
- Aggiornato
- 14 marzo 2026
Naviga questo esempio
Libreria
Sfoglia gli esempiRiapri la libreria completa per confrontare pattern vicini e percorsi collegati.Interazione
Esegui ora nel sandboxProva l'interazione direttamente nella superficie guidata di questo esempio.Sorgente
Apri codice completoLeggi l'implementazione reale, i punti evidenziati e i requisiti runtime.MCP
Chiama via MCPUsa la stessa risorsa dentro agenti, export deterministici e setup MCP.
Principi collegati
07-file-search.py
python
import requests
from io import BytesIO
from openai import OpenAI
import textwrap
client = OpenAI()
"""
https://platform.openai.com/storage/files/
"""
# --------------------------------------------------------------
# Upload a file
# --------------------------------------------------------------
def create_file(client, file_path):
if file_path.startswith("http://") or file_path.startswith("https://"):
# Download the file content from the URL
response = requests.get(file_path)
file_content = BytesIO(response.content)
file_name = file_path.split("/")[-1]
file_tuple = (file_name, file_content)
result = client.files.create(file=file_tuple, purpose="assistants")
else:
# Handle local file path
with open(file_path, "rb") as file_content:
result = client.files.create(file=file_content, purpose="assistants")
print(result.id)
return result.id
# Replace with your own file path or URL
file_id = create_file(client, "https://cdn.openai.com/API/docs/deep_research_blog.pdf")
# --------------------------------------------------------------
# Create a vector store
# --------------------------------------------------------------
"""
https://platform.openai.com/storage/vector_stores
Please be aware of costs!
"""
vector_store = client.vector_stores.create(name="knowledge_base")
print(vector_store.id)
# --------------------------------------------------------------
# Add a file to the vector store
# --------------------------------------------------------------
result = client.vector_stores.files.create(
vector_store_id=vector_store.id, file_id=file_id
)
print(result)
# --------------------------------------------------------------
# Check status
# --------------------------------------------------------------
result = client.vector_stores.files.list(vector_store_id=vector_store.id)
print(result)
# --------------------------------------------------------------
# Use file search
# --------------------------------------------------------------
"""
At the moment, you can search in only one vector store at a time,
so you can include only one vector store ID when calling the file search tool.
"""
response = client.responses.create(
model="gpt-4o",
input="What is deep research by OpenAI?",
tools=[{"type": "file_search", "vector_store_ids": [vector_store.id]}],
)
print(response)
print(textwrap.fill(response.output_text, width=80))
# --------------------------------------------------------------
# Limit results
# --------------------------------------------------------------
response = client.responses.create(
model="gpt-4o",
input="What is deep research by OpenAI?",
tools=[
{
"type": "file_search",
"vector_store_ids": [vector_store.id],
"max_num_results": 2,
}
],
include=["output[*].file_search_call.search_results"],
)
print(response.model_dump_json(indent=2))
# --------------------------------------------------------------
# Similarity search
# ----------------------§---------------------------------------
results = client.vector_stores.search(
vector_store_id=vector_store.id,
query="What is deep research by OpenAI?",
)
print(results.model_dump_json(indent=2))
Principi correlati
- P4trustApplicare la divulgazione progressiva all'agenzia del sistemaFornire per impostazione predefinita le informazioni minime necessarie, consentendo agli utenti di ispezionare ulteriori dettagli quando è richiesta fiducia, comprensione o intervento.Apri il principio →
- P6visibilityEsporre uno stato operativo significativo, non la complessità internaPresentare lo stato del sistema in linguaggio e strutture rilevanti per l'utente, piuttosto che esporre dettagli interni di basso livello che non supportano l'azione o la comprensione.Apri il principio →
- P7trustStabilire fiducia attraverso l'ispezionabilitàGli utenti dovrebbero essere in grado di esaminare come è stato prodotto un risultato quando la fiducia, la responsabilità o la qualità della decisione sono importanti.Apri il principio →
- P9orchestrationRappresentare il lavoro delegato come un sistema, non solo come una conversazioneDove il lavoro coinvolge più passaggi, agenti, dipendenze o attività concorrenti, dovrebbe essere rappresentato come un sistema strutturato piuttosto che solo come un flusso di messaggi.Apri il principio →