第三方 OpenAI 兼容接口未必支援官方 Responses API 嘅內置網頁搜尋工具。[5] 較通用做法係先用 Tavily 搜尋,再將搜尋結果同 TXT 數據一併交畀模型分析;Tavily 以 API Key 認證,並可返回結構化結果。[1][3] Chat Completions 唔會因為你重用同一個 client 或模型,就自動記得之前嘅請求;對話上下文要由程式保存,再喺下次請求重新傳入。[2][6]
研究答案

Create a landscape editorial hero image for this Studio Global article: 我想让其在分析数据的时候连接网络搜索,帮我改一下代码,另外它会有记忆吗?我之前喂给它的东西会记得吗. Article summary: 可以,但你当前使用的是第三方 OpenAI 兼容接口,无法确定 deepseek v4 flash 是否原生支持联网工具。官方 OpenAI 的内置网页搜索主要通过 Responses API 提供,而第三方 base url 不一定兼容该功能。[5] 因此,下面采用更通用的方案:程序先调用 Tavily 搜索互联网,再把搜索结果连同 TXT 数据一起交给模型分析;Tavily 支持通过 API Key 调用搜索接口并返回结构化结果。[. Topic tags: deepresearch, general web, openai, agents, prompt engineering. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fake numbers, clickbait thumbnails, icons, and tiny thumbnail layout
如果你而家用緊第三方 OpenAI 兼容接口,單靠改 chat.completions.create(),未必可以直接開啟官方內置網頁搜尋。官方 OpenAI 嘅網頁搜尋主要透過 Responses API 提供,但第三方 base_url 未必兼容呢套工具。5
較穩陣、亦較通用嘅做法係將流程拆開兩步:
Tavily 搜尋接口使用 API Key 認證,並會返回包含標題、網址及摘要等欄位嘅結構化結果。1
3
唔會自動有。
你每次呼叫 chat.completions.create(),模型通常只會睇到今次請求入面傳入嘅 messages。即使你用返同一個 client、同一個模型,或者同一條 API Key,都唔代表模型會自動記住上一次分析過嘅內容。對話狀態需要由應用程式自行管理。2
6
換句話講,以下兩種情況要分清楚:
原本方案提供咗一個可選設定:
ENABLE_PERSISTENT_MEMORY = False
MEMORY_FILE = Path("analysis_memory.txt")
將 ENABLE_PERSISTENT_MEMORY 改成 True 之後,程式會:
analysis_memory.txt;但要留意,呢個記憶功能保存嘅係之前嘅最終分析報告,唔係完整原始 TXT 數據。程式亦設定咗讀取上限同檔案大小上限,避免記憶檔案無限膨脹。
如果你分析緊完全唔同嘅項目,建議保持:
ENABLE_PERSISTENT_MEMORY = False
否則舊項目嘅結論可能會干擾今次分析。即使開啟記憶,提示詞亦應該明確要求模型:當歷史記憶同當前 TXT 數據有衝突時,以當前數據為準。
可以用環境變量保存密鑰,避免直接將 Key 寫死喺程式入面:
Windows PowerShell:
$env:AI_API_KEY="你嘅 AI API Key"
$env:AI_BASE_URL="你嘅 Base URL"
$env:TAVILY_API_KEY="你嘅 Tavily API Key"
Windows CMD:
set AI_API_KEY=你嘅 AI API Key
set AI_BASE_URL=你嘅 Base URL
set TAVILY_API_KEY=你嘅 Tavily API Key
Python 設定可以寫成:
API_KEY = os.getenv("AI_API_KEY", "")
BASE_URL = os.getenv("AI_BASE_URL", "")
TAVILY_API_KEY = os.getenv("TAVILY_API_KEY", "")
MODEL_NAME = "deepseek-v4-flash"
ENABLE_WEB_SEARCH = True
TAVILY_SEARCH_URL = "https://api.tavily.com/search"
SEARCH_RESULTS_PER_QUERY = 5
MAX_SEARCH_QUERIES = 4
SEARCH_DEPTH = "advanced"
程式會先根據 TXT 數據嘅欄名及內容預覽,產生最多幾條一般性技術搜尋詞,例如 MOSFET、DIBL、threshold voltage、subthreshold swing 等;如果自動產生失敗,就使用預先寫好嘅 USER_SEARCH_QUERIES。
搜尋結果唔應該直接當成模型指令,而係整理成參考資料,例如:
[W1]
標題:……
URL:……
搜索關鍵詞:……
摘要:……
之後喺提示詞中要求模型:
x 或 X 代表缺失、無效或無法計算,唔可以當成數字 0;[W1]、[W2] 等來源標記;呢種做法可以將「數據事實」、「網絡資料」同「模型推斷」分開,減少模型將背景知識誤當成實測結果。
你提供嘅程式碼入面,讀取模型回覆嗰行應該確認係取第一個選項。一般寫法係:
content = response.choices.message.content
如果寫成:
content = response.choices.message.content
就會因為 choices 通常係列表而報錯。實際上,第三方兼容接口嘅回覆格式可能略有不同,所以最好先檢查接口文件;如果回覆格式跟 OpenAI 兼容格式一致,就應該使用 `` 取第一個選項。
讀取 data.txt
↓
將大型 TXT 分成多個數據塊
↓
根據欄名及數據內容產生搜尋關鍵詞
↓
呼叫 Tavily 搜尋網絡資料
↓
整理搜尋結果及來源編號
↓
逐個數據塊交畀模型分析
↓
合併階段報告
↓
輸出 analysis_result.txt
↓
如有需要,追加保存到 analysis_memory.txt
總結嚟講,最實際嘅方案唔係假設第三方模型接口一定有原生聯網能力,而係由你嘅 Python 程式負責搜尋,再將有來源標記嘅資料交畀模型。至於「記憶」,模型本身唔會自動保留你之前餵過嘅內容;你要自行選擇用文字檔、資料庫,或者保存完整對話歷史,再喺下一次請求傳入。對唔同項目分開保存記憶,通常會比所有報告塞入同一個檔案更加穩陣。
Studio Global AI
此頁麵包含一個有來源支援的答案,您可以在 Studio Global 內繼續。
第三方 OpenAI 兼容接口未必支援官方 Responses API 嘅內置網頁搜尋工具。[5]
第三方 OpenAI 兼容接口未必支援官方 Responses API 嘅內置網頁搜尋工具。[5] 較通用做法係先用 Tavily 搜尋,再將搜尋結果同 TXT 數據一併交畀模型分析;Tavily 以 API Key 認證,並可返回結構化結果。[1][3]
Chat Completions 唔會因為你重用同一個 client 或模型,就自動記得之前嘅請求;對話上下文要由程式保存,再喺下次請求重新傳入。[2][6]