제3자 OpenAI 호환 API에서는 OpenAI의 내장 웹 검색 기능이 그대로 지원된다고 보장할 수 없습니다.[5] 가장 범용적인 방식은 Tavily로 검색한 뒤 검색 결과와 TXT 데이터를 함께 모델에 전달하는 것입니다.[1][3] Chat Completions는 같은 클라이언트나 모델을 사용해도 이전 요청을 자동으로 기억하지 않습니다.[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
가능합니다. 다만 현재 프로그램이 제3자 OpenAI 호환 인터페이스와 chat.completions.create()를 사용하고 있다면, 해당 모델이 OpenAI의 내장 웹 검색 도구를 지원하는지는 base_url 제공업체에 따라 달라집니다. OpenAI의 공식 웹 검색 도구는 Responses API를 통해 제공되지만, 제3자 호환 API가 같은 기능까지 지원한다고 볼 수는 없습니다.5
따라서 가장 호환성이 높은 구성은 다음과 같습니다.
TXT 데이터
↓
검색 키워드 생성
↓
Tavily 웹 검색
↓
검색 결과 + TXT 데이터를 AI에 전달
↓
분석 보고서와 출처 생성
Tavily는 API 키를 사용해 검색 요청을 보내고 구조화된 결과를 반환하므로, 모델 자체가 웹 검색 도구를 지원하지 않아도 별도의 검색 단계로 활용할 수 있습니다.1
3
제공한 코드는 다음과 같은 방식으로 구성됩니다.
환경 변수에 AI API와 Tavily API 키를 저장합니다.
$env:AI_API_KEY="你的 AI API Key"
$env:AI_BASE_URL="你的 Base URL"
$env:TAVILY_API_KEY="你的 Tavily API Key"
검색 기능은 다음 설정으로 켜고 끌 수 있습니다.
ENABLE_WEB_SEARCH = True
TAVILY_SEARCH_URL에 Tavily 검색 엔드포인트를 지정하고, 검색 깊이와 검색 결과 수를 설정합니다. 검색 결과에는 제목, URL, 요약, 사용된 검색어가 포함되며, 중복 URL은 제거됩니다.
프로그램은 TXT 파일의 앞부분과 열 정보를 모델에 전달해 기술적 검색어를 만들도록 설정돼 있습니다. 예를 들어 MOSFET 데이터라면 다음과 같은 주제가 검색될 수 있습니다.
MOSFET DIBL gate length short channel effectsubthreshold swing physical interpretation MOSFETthreshold voltage Idsat Ioff tradeoff semiconductor자동 생성에 실패할 경우를 대비해 USER_SEARCH_QUERIES에 미리 지정한 검색어도 함께 사용합니다. 검색어에는 원본 데이터의 민감한 정보나 대량의 수치를 넣지 않도록 제한하는 것이 안전합니다.
검색 자료에는 [W1], [W2]와 같은 번호가 붙습니다. 모델은 네트워크 자료를 사용한 문장 뒤에 해당 번호를 표시하도록 지시받습니다.
예를 들면 다음과 같습니다.
짧은 게이트 길이에서는 단채널 효과로 인해 DIBL이 커질 수 있습니다 [W1].
이때 TXT 파일에서 직접 확인한 값과 웹 검색으로 확인한 일반적인 물리 설명을 구분해야 합니다. 코드의 분석 지침도 이 원칙을 따르도록 작성돼 있습니다.
기본적으로는 기억하지 않습니다. chat.completions.create()를 여러 번 호출하거나 같은 client 객체와 모델을 계속 사용한다고 해서 이전 요청이 자동으로 이어지지는 않습니다. 대화의 문맥은 프로그램이 직접 저장하고 다음 요청에 다시 전달해야 합니다.2
6
즉, 다음 두 가지는 서로 다릅니다.
현재 코드에는 이 문제를 해결하기 위한 선택적 로컬 메모리 기능이 들어가 있습니다.
analysis_memory.txt 방식의 로컬 기억다음 설정을 활성화하면 됩니다.
ENABLE_PERSISTENT_MEMORY = True
활성화하면 프로그램은 다음 순서로 동작합니다.
analysis_memory.txt를 읽습니다.다만 이 기능은 전체 원본 데이터를 영구적으로 기억하는 기능이 아닙니다. 현재 구현에서는 이전의 최종 분석 보고서를 저장하고 다음 분석에 참고 자료로 전달합니다.
또한 서로 다른 프로젝트나 다른 반도체 소자의 데이터를 분석할 때는 다음처럼 끄는 편이 좋습니다.
ENABLE_PERSISTENT_MEMORY = False
이전 프로젝트의 결론이 현재 데이터에 섞일 수 있기 때문입니다. 코드에서도 과거 기억이 현재 TXT 데이터의 사실이나 수치를 덮어쓰지 못하도록 지시하고 있습니다.
Tavily가 반환하는 내용은 검색 결과의 제목과 요약입니다. 최종 보고서에서 중요한 기술적 결론을 내릴 때는 원문 확인이 필요합니다. 검색 요약만으로 현재 데이터의 원인을 확정해서는 안 됩니다.
x와 X를 숫자 0으로 처리하지 않기제공한 분석 지침은 x 또는 X를 결측값·무효값·계산 불가 값으로 취급하도록 명시합니다. 따라서 전처리 단계에서도 이를 0으로 변환하지 않아야 합니다.
현재 코드는 원본 TXT 전체가 아니라 최종 보고서를 메모리에 저장하도록 설계돼 있습니다. 프로젝트명, 소자 정보, 실험 조건 등 민감한 내용이 보고서에 포함될 수 있다면 analysis_memory.txt의 접근 권한과 보관 기간도 별도로 관리해야 합니다.
현재 구조에서는 모델에 직접 ‘기억 기능’이나 ‘인터넷 기능’이 자동으로 생기는 것이 아닙니다.
이 방식은 사용 중인 모델이나 제3자 API가 OpenAI의 내장 검색 도구를 완전히 지원하지 않더라도 적용할 수 있다는 점이 장점입니다.
Studio Global AI
이 페이지에는 Studio Global 내에서 계속할 수 있는 소스 기반 답변이 포함되어 있습니다.
제3자 OpenAI 호환 API에서는 OpenAI의 내장 웹 검색 기능이 그대로 지원된다고 보장할 수 없습니다.[5]
제3자 OpenAI 호환 API에서는 OpenAI의 내장 웹 검색 기능이 그대로 지원된다고 보장할 수 없습니다.[5] 가장 범용적인 방식은 Tavily로 검색한 뒤 검색 결과와 TXT 데이터를 함께 모델에 전달하는 것입니다.[1][3]
Chat Completions는 같은 클라이언트나 모델을 사용해도 이전 요청을 자동으로 기억하지 않습니다.[2][6]