반응형
반응형

[AI] 구글, '제미나이 코드 어시스트' 대규모 업데이트… 'AI 에이전트 모드' 무료 공개

 

"AI가 코드를 짜는 것"에서 나아가, "AI와 함께 코드를 설계하고 협업하는 방식"으로... 대화형 피드백 루프를 통해 보다 지능적인 개발 파트너로 진화

로고 이미지

구글이 인공지능(AI) 코딩 도우미인 '제미나이 코드 어시스트(Gemini Code Assist)'에 새로운 '에이전트 모드(Agent Mode)'를 포함한 대규모 업데이트를 17일(현지시간) 공개했다. 

제미나이 CLI(Command Line Interface) 및 에이전트 모델은 물론, 일상적인 워크플로를 더욱 원활하고 직관적으로 만들어 주는 IDE(Integrated Development Environment-통합개발환경) 기능 개선도 포함되었다. 개인 사용자는 버추얼 스튜디오 코드(Visual Studio Code-보기) 플러그인이나 젯브레인스 IDE(JetBrains IDE-보기) 확장 프로그램을 설치하여 무료로 시작할 수 있다

향후 기능 업데이트는 공식 릴리스 노트(보기)를 통해 확인할 수 있다. 이번 제미나이 코드 어시스트 업데이트를 통해  일상적인 개발 워크플로우를 더욱 원활하고 직관적으로 만들어 개발 생산성을 크게 향상시킬 것으로 기대된다.

에이전트 모드... ‘도우미’ 넘어 ‘공동 개발자’로

신규 기능인 에이전트 모드는 기존의 단일 파일 기반 코드 생성 기능을 넘어, 프로젝트 전체 구조와 코드베이스를 분석해 복잡한 멀티파일 작업까지 수행할 수 있는 AI 기능이다.

구글은 최근 개발자를 위한 두 가지 주요 AI 업데이트를 발표했다. 제미나이 CLI(보기)는 AI를 명령줄에 직접 통합하여, 개발자가 터미널에서 바로 질문하고 코드를 생성하며 디버깅할 수 있게 함으로써 컨텍스트 전환을 없앤다.

이를 더욱 발전시킨 제미나이 코드 어시스트의 새로운 에이전트 모드는 AI 페어 프로그래머 역할을 한다. 이는 전체 코드베이스를 분석하여 복잡한 다중 파일 작업을 계획하고 실행한다. 예를 들어, 새로운 기능을 구현하거나 대규모 리팩토링을 단일 프롬프트에서 수행함으로써 개발 프로세스를 크게 가속화한다. 이를 도구라기보다는 작업을 위임하는 방식으로 생각할 수 있다. 에이전트 모드는 지난달 'Insiders' 채널 개발자들에게 먼저 공개되었다.

에이전트 모드의 강점은 포괄적인 프로젝트 이해력에 있다. 에이전트는 열려 있는 파일뿐만 아니라 전체 코드베이스를 분석하여 애플리케이션의 아키텍처, 종속성, 코딩 패턴 및 다양한 구성 요소 간의 관계를 모델링한다.

이를 통해 제안 사항이 컨텍스트를 인식하게 되므로, 에이전트는 필요한 모든 구성 요소에 걸쳐 기능을 구현하는 방법을 알게 된다. 또한 기존 코딩 스타일을 존중하여 더 높은 품질의 일관된 코드를 생성한다. 이러한 프로젝트 전반에 대한 인식은 오류를 줄이고, 일치하지 않는 제안을 수정하거나 컨텍스트를 설명하는 데 드는 시간을 줄여준다.

프로젝트에 대한 완벽한 이해를 바탕으로, 코드 어시스트의 에이전트는 다중 파일 편집을 가능하게 한다. 이전에는 중요한 기능을 구현하는 것이 조각조각 진행되는 과정이었을 수 있다. 한 파일에 대한 코드를 생성하고 다른 파일에 대한 코드를 생성한 후, 모든 것을 수동으로 연결해야 했다. 에이전트 모드를 사용하면 이제 단일 요청을 통해 코드 어시스트가 코드베이스 전체의 모든 변경 사항을 조율한다.

이를 통해 개발자는 하나의 프롬프트만으로  <대규모 리팩토링> "모든 API 엔드포인트가 새 인증을 사용하도록 업데이트해줘." <기능 구현> "새로운 풀스택 사용자 설정 페이지를 추가해줘." <종속성 업그레이드> "코어 라이브러리를 업데이트하고 모든 호환성 문제를 수정해줘." 등으로 단일 프롬프트로 대규모 작업을 지시할 수 있다.

에이전트 모드는 코드 구조, 의존성, 아키텍처 패턴까지 분석해 기존 개발 스타일을 유지하면서 기능을 구현하며, 모든 변경 사항은 사전에 상세한 계획 형태로 사용자에게 제시된다. 사용자는 이를 검토, 수정 또는 거절할 수 있어 개발 주도권은 여전히 사람에게 있다.

이러한 협력적 루프는 AI의 속도와 규모를 사용자의 도메인 전문 지식 및 아키텍처 비전과 결합한다. 이는 최종 결과가 기능적일 뿐만 아니라 사용자가 정확히 의도한 대로임을 보장한다.

또한 안심할 수 있도록 지난 6월 업데이트에서는 체크포인트로 되돌리는 기능이 도입되었다. 일련의 제안을 수락했지만 올바르지 않다고 판단될 경우, 영향을 받는 모든 파일을 변경 사항이 적용되기 전 상태로 쉽게 되돌릴 수 있어 과감한 실험을 장려한다.

IDE 개선 기능으로 더 정밀한 제어와 원활한 경험

구글은 지난달 컨텍스트에 대한 더 세밀한 제어를 제공하는 업데이트를 출시했다. 코드 어시스트는 이제 .gitignore 파일을 자동으로 적용하고, 민감하거나 레거시 코드를 무시하기 위해 .aiexlude 파일을 생성할 수 있도록 한다. 반대로, 특정 코드 스니펫에 채팅 초점을 맞춰 더 정확한 질문을 할 수 있다. 또한 터미널 출력을 채팅에 직접 첨부하여 명령에 대해 묻거나 오류를 디버깅할 수 있어 로그를 복사-붙여넣기할 필요가 없다.

이러한 기능들은 신호 대 잡음비(signal-to-noise ratio)에 대한 정밀한 제어를 제공한다. 관련 없는 파일을 제외하고 특정 스니펫 또는 터미널 로그에 집중함으로써 더 빠르고 정확하며 관련성 높은 답변을 얻을 수 있어 디버깅 및 분석 속도를 크게 향상시킨다.

또한 채팅 경험이 더 반응적이고 직관적으로 개선되었다. 가독성을 높이기 위해 코드 제안이 깔끔한 미리 보기 블록으로 나타나며, 이를 접거나 확장하도록 구성할 수 있다. 프로젝트 탐색도 더 쉬워졌는데, 채팅에서 코드 어시스트가 언급하는 파일 이름은 이제 편집기에서 즉시 열리는 클릭 가능한 링크가 되었다.

긴 응답의 경우, 제미나이 코드 어시스트가 입력하는 동안 채팅이 자동으로 스크롤되지만, 원하면 이 기능을 비활성화할 수 있다. 또한 질문을 했는데 잘못된 질문이었거나 응답이 너무 오래 걸린다고 판단되면, 진행 중인 채팅 응답을 즉시 중지할 수 있어 시간과 좌절감을 줄여준다.

이러한 개선 사항들은 제미나이 코드 어시스트를 더 원활하고 효율적으로 사용할 수 있게 한다. 스크롤하거나, 텍스트를 파싱하거나, 파일을 수동으로 탐색하는 데 시간을 덜 소비하게 하여 개발자가 '몰입 상태(state of flow)'를 유지하고 가장 중요한 문제 해결에 집중할 수 있도록 한다.

한편, 제미나이 코드 어시스트는 단순한 코드 생성기를 넘어, 코드 품질 유지, 개발자 스타일 학습, 대화형 피드백 루프를 통해 보다 지능적인 개발 파트너로 진화하고 있다. 특히 이번 업데이트는 "AI가 코드를 짜는 것"에서 나아가, "AI와 함께 코드를 설계하고 협업하는 방식"으로 전환되고 있음을 시사한다.

 

 

https://www.aitimes.kr/news/articleView.html?idxno=35736

반응형
반응형

[AI] 커서(Cursor)와 바이브코딩(Vibe Coding)

 

**커서(Cursor)**는 AI 기반의 코드 에디터입니다. 챗GPT(ChatGPT) 개발사인 OpenAI의 모델을 기반으로 만들어졌으며, 개발자가 코드를 더 빠르고 효율적으로 작성, 수정, 디버깅할 수 있도록 돕습니다.

주요 기능:

  • AI 채팅: 에디터 내에서 AI와 대화하며 코드 생성, 수정, 질문에 대한 답변을 얻을 수 있습니다.
  • 코드 자동 생성 및 수정: 간단한 명령(프롬프트)으로 원하는 기능의 코드를 만들거나 기존 코드를 개선할 수 있습니다.
  • AI 기반 디버깅: 코드의 버그나 오류를 AI가 분석하고 해결책을 제시합니다.
  • 문서 참조: 외부 라이브러리나 프레임워크의 문서를 AI가 참조하여 정확한 코드를 작성해 줍니다.

**바이브코딩(Vibe Coding)**은 정해진 문법이나 규칙에 얽매이기보다, 개발자의 '느낌'이나 '감'에 의존하여 직관적으로 코드를 작성하는 스타일을 의미하는 신조어입니다.

이는 종종 다음과 같은 상황에서 사용됩니다.

  • 빠른 프로토타이핑: 완벽한 코드보다는 빠른 결과물 확인이 중요할 때, 세부적인 사항을 생략하고 핵심 로직만 빠르게 구현하는 방식입니다.
  • 경험 기반 코딩: 숙련된 개발자가 자신의 풍부한 경험을 바탕으로 "이렇게 하면 될 것 같다"는 직관을 따라 코드를 작성하는 경우입니다.

커서(Cursor)와 같은 AI 코드 에디터의 등장은 이러한 '바이브코딩'을 더욱 현실적이고 효율적으로 만들어줍니다. 개발자가 가진 추상적인 아이디어나 '감'을 AI에게 설명하면, AI가 그것을 실제 작동하는 코드로 구체화해 주기 때문입니다. 즉, 개발자의 직관과 AI의 기술력이 결합하여 생산성을 극대화하는 시너지를 낼 수 있습니다.

 

 

 

AI 코드 에디터 **커서(Cursor)**는 공식 웹사이트에서 다운로드할 수 있습니다.

아래 경로를 통해 접속하여 사용하시는 운영체제(OS)에 맞는 버전을 다운로드하세요.

🔗 커서 공식 다운로드 페이지: https://www.cursor.com/download

페이지에 접속하면 Windows, macOS, Linux 등 사용 환경에 맞는 설치 파일을 바로 다운로드 받을 수 있습니다.

 

https://cursor.com/downloads

 

Downloads | Cursor - The AI Code Editor

Download Cursor for Windows, macOS, and Linux. Get the AI-powered code editor that makes you extraordinarily productive.

cursor.com

 

반응형
반응형

 

Every token sent through a wrapper — paid or not — earns OpenAI money. Multiply that by millions of freemium users, and these startups become unpaid distribution arms, subsidizing OpenAI’s growth while bleeding out.

 

래퍼를 통해 전송된 모든 토큰은 유료든 무료든 OpenAI의 수익을 창출합니다. 여기에 수백만 명의 프리미엄(Freemium) 사용자가 더해지면, 이러한 스타트업들은 무료 배포 업체로 전락하여 OpenAI의 성장을 지원하면서도 쇠퇴하는 모습을 보입니다.

 

 

https://skooloflife.medium.com/99-of-ai-startups-will-be-dead-by-2026-heres-why-bfc974edd968

 

99% of AI Startups Will Be Dead by 2026 — Here’s Why

In the late ’90s, I was a student at Berkeley watching the dot-com boom unfold like a fever dream.

skooloflife.medium.com

반응형
반응형

is-an.ai - AI 프로젝트를 위한 무료 서브도메인 서비스 (is-an.ai)

 

https://is-an.ai/

 

is-an.ai - Free AI Subdomains

 

is-an.ai

 

 

AI 연구자와 개발자, 그리고 그냥 소소한 서비스들을 위한 서브도메인 제공 서비스 "is-an.ai"를 소개합니다.

소개

  • is-a.dev의 AI 프로젝트 버전으로, cool-project.is-an.ai 같은 서브도메인을 무료로 제공합니다.
  • GitHub이나 DNS 지식 없이도 쉽게 사용 가능해요.
    • Github Pages, Vercel App, Cloudflare Pages용 도메인으로도 간편히 사용할 수 있습니다.
  • .ai 나 기타 도메인들이 간단한 프로젝트에 사용하기에는 너무 비싸서 만들었습니다.

작동 방식

  • GithubOrg/is-an-ai와 Cloudflare가 연동되어 있습니다.
  • 레포지토리에 json 형식의 record가 추가되면 Github Actions으로 record를 검증하고 CF에 추가합니다.
  • 유저는 직접 PR을 올려서 record를 추가할 수도 있고, is-an.ai 웹사이트에서 추가할 수도 있습니다.
  • 웹사이트를 이용할 경우 봇을 이용해 record를 추가합니다.

현재 레코드, 액션, 웹 전부 오픈소스로 공개해두었어요.

  • 기억에 잘 남는 도메인이 필요할 때
  • 사이드프로젝트 배포해야하는데 .vercel.app 이나 .pages.dev 는 너무 데모 같을 때
  • 그냥 api 서버용 아무 도메인이나 하나 필요할 때

is-an.ai에서 도메인 하나씩 집어가세요 🤗

 
반응형
반응형

"개발자가 대체된다"는 유행은 왜 반복될까 ?

The Recurring Cycle of 'Developer Replacement' Hype

 

https://alonso.network/the-recurring-cycle-of-developer-replacement-hype/

 

 

  • NoCode부터 AI까지, 개발자를 대체하겠다는 기술은 반복적으로 등장하지만 실제로는 기술 변화에 따라 역할이 변형
  • NoCode는 개발자를 없애지 않고 NoCode 전문가와 통합 기술자를 탄생시켰고, 클라우드는 DevOps 엔지니어라는 고급 직군을 만들었음
  • 현재 AI 개발도구도 비슷한 길을 걷고 있으며, AI가 코드를 짜는 시대에도 시스템 아키텍처 설계 능력은 여전히 핵심임
  • AI는 로컬 최적화는 잘하지만 전체 시스템 설계에는 약하며, 빠른 생성 속도로 인해 구조적 실수를 빠르게 고착화할 위험이 있음
  • 개발자 대체는 결국 기술 스택 변화에 따른 진화와 고도화일 뿐, 본질적 역할은 계속 필요함

From NoCode to AI-Assisted

  • 몇 년 주기로, 소프트웨어 개발자를 대체할 것이라 주장하는 새로운 기술이 등장함
  • "코딩의 종말", "이제 누구나 앱을 만들 수 있음", "아이도 코딩한다" 등 과장된 기대가 포함된 유사한 제목들이 반복적으로 생성됨
  • 경영진과 컨설턴트들이 이 흐름에 주목하고, 예산이 이동하는 모습이 나타남
  • 하지만 현실은 항상 “대체”가 아니라 “변형”이었음
    • 복잡해진 기술을 다루는 새로운 역할 고도화된 전문직이 탄생하고, 임금 수준도 상승하는 경향이 반복적으로 드러남
  • NoCode는 전문 기술자 없이 앱을 만들 수 있다는 기대를 만들었지만, 결국 데이터 모델링, 통합, 유지보수 등 복잡한 문제가 존재했고 이를 해결할 새로운 직군이 탄생함
  • 클라우드는 시스템 관리자 없이 운영 가능하다는 믿음을 줬지만 실제로는 DevOps 엔지니어라는 고급 전문성을 요구하게 되고, 임금도 상승함
  • AI도 마찬가지로, “AI가 코드를 대신 작성”할 수 있을 것 같지만 실제로는 AI를 관리·오케스트레이션 할 수 있는 숙련 개발자의 중요성이 더욱 커짐

반복되는 대체 약속의 회전목마(The Endless Carousel of Replacement Promises)

NoCode/LowCode 혁신

  • 직관적인 인터페이스로 모든 사용자가 앱을 만들 수 있다는 NoCode/LowCode 혁신이 등장
  • 하지만 실제 현장에서는 데이터 모델 설계, 기존 시스템과 데이터베이스 통합, 예외 처리, 유지 관리 등 신규 문제가 발생함
  • 이에 따라 단순 개발자가 아닌, 도메인 지식과 기술적 한계를 동시에 이해하는 NoCode 전문가가 필요해짐
  • 이들은 기존 개발자보다 더 높은 연봉을 받음

클라우드 혁명

  • 클라우드로 이전하면 시스템 관리자가 필요 없어질 거라는 기대가 컸음
  • 하지만 클라우드 관리 전문성 복잡성이 오히려 증가함
  • 기존 시스템 관리자는 DevOps 엔지니어로 변신하여 더 높은 급여를 받고, 인프라 자동화, 배포 파이프라인, 분산 시스템 관리 등 업무 수준이 고도화됨
  • 업무는 사라진 것이 아니라, 새로운 작업 형태로 진화함
  • 마이크로서비스 전환에서도 복잡성이 커지고, 결국 근본적으로 시스템을 관리하는 전문가의 역할이 중요함이 드러났음

오프쇼어(Offshore) 개발 바람

  • 해외 아웃소싱으로 비용을 절감할 수 있다는 믿음이 생겨났지만, 커뮤니케이션 문제, 품질 저하, 도메인 지식 부족으로 어려움 발생
  • 결국 분산 팀 구조조, 명확한 소유권, 강력한 아키텍처 등으로 전략이 변화하며, 초기 기대했던 것보다 전체 비용이 증가하는 결과를 낳음

AI 코딩 어시스턴트 혁명

  • 이제는 AI가 코드를 자동으로 생성한다는 약속이 화두임
  • 초기 현실에서는, AI가 만들어주는 코드는 종종 미묘한 오류와 일관성 문제를 내포함
  • 시니어 엔지니어가 AI 결과를 검토·수정하는 데 많은 시간을 쓰며, 경험 있는 개발자일수록 훨씬 더 많은 가치를 창출함
  • AI 보조만으로 구축된 시스템은 체계적인 아키텍처가 부재한 경우가 많음
  • 즉, 기술이 기술자를 대체하는 것이 아니라, 더 높은 추상화 계층으로 기술자의 전문성을 끌어올리는 것임

이번 사이클이 특별한 이유

  • 사람들이 간과하는 핵심: 코드는 자산이 아니라 부채
  • 빠르고 쉽게 코드를 만들수록, 유지보수와 보안, 리팩터링의 부담도 커짐
  • AI는 함수 단위 최적화는 가능하지만 전체 시스템 설계 능력은 부족
  • 구현 속도가 빨라질수록 구조적 실수를 빠르게 고착화할 위험 존재
  • 결국, AI 시대에도 진정한 자산은 시스템 아키텍처 설계 능력이며, 이는 대체가 아닌 강화의 대상
  • "AI가 개발자를 대체한다"는 주장은 다음의 근본적 오해에서 비롯됨
    • 코드는 자산이 아니라 부채라는 사실
    • 코드는 지속적인 유지·검증·보안 관리·교체가 필요하며, 그 라인 수만큼 부채가 증가함
  • AI가 코드를 빠르게 만들어준다는 것은, 부채를 그만큼 빠르게 발생시킨다는 것에 불과함
  • 즉, AI는 로컬 최적화(함수, 부분 기능)는 잘하지만, 글로벌 설계·아키텍처 결정은 부족함
  • 구현 속도가 빨라질수록, 잘못된 설계가 시스템 전체에 '굳어지는' 위험성이 커짐
  • 일회성 단기 사이트 제작에는 문제가 없으나, 장기적으로 발전하는 시스템에는 치명적임
  • 기술 혁신의 패턴은 변함없이 유지됨
    • 시스템 관리자는 DevOps 엔지니어가 되고, 백엔드 개발자는 클라우드 아키텍트가 됨
  • 하지만 AI는 모든 것을 가속화함. 살아남고 발전하는 기술은 코드 작성이 아님
  • 그것은 바로 시스템을 설계하는 것(Architecting systems). AI가 할 수 없는 유일한 일이 바로 그것임

 

 

반응형
반응형

벡터 DB 만들어 보기

 

 

https://wikidocs.net/262584

 

9.1.2. 벡터 DB 만들어 보기

**벡터 DB 생성 코드** --- 다음은 벡터 DB를 생성하는 코드입니다. ```python # build_vector_db.py from langchain_community.…

wikidocs.net

 

 

 

벡터 데이터베이스 정의

벡터 데이터베이스는 데이터 객체의 수치적 표현인 벡터(벡터 임베딩이라고도 함) 형태로 정보를 저장하는 데이터베이스입니다. 이러한 벡터 임베딩의 성능을 활용하여 이미지, 텍스트, 센서 데이터 등의 비정형 데이터반정형 데이터로 구성된 대규모 데이터 세트를 색인하고 검색합니다. 벡터 데이터베이스는 벡터 임베딩을 관리하기 위해 구축되었으므로 비정형 및 반정형 데이터 관리를 위한 완벽한 솔루션을 제공합니다.

벡터 데이터베이스는 벡터 검색 라이브러리 또는 벡터 인덱스와 다릅니다. 이는 메타데이터 저장 및 필터링을 가능하게 하고, 확장 가능하며, 동적 데이터 변경을 허용하고, 백업을 수행하고, 보안 기능을 제공하는 데이터 관리 솔루션입니다.

벡터 데이터베이스는 고차원 벡터를 통해 데이터를 구성합니다. 고차원 벡터에는 수백 개의 차원이 포함되어 있으며 각 차원은 그것이 나타내는 데이터 객체의 특정 기능이나 속성에 해당합니다.

 

벡터 임베딩이란 무엇인가요?

벡터 임베딩은 주제, 단어, 이미지 또는 기타 데이터를 숫자로 표현한 것입니다. 임베딩이라고도 하는 벡터 임베딩은 대규모 언어 모델 및 기타 AI 모델에 의해 생성됩니다.

각 벡터 임베딩 사이의 거리는 벡터 데이터베이스 또는 벡터 검색 엔진이 벡터 간의 유사성을 결정할 수 있게 해줍니다. 거리는 데이터 객체의 여러 차원을 나타낼 수 있으므로,머신 러닝 및 AI가 패턴, 관계 및 기본 구조를 이해할 수 있습니다.

 

 

 

 

 

DB-Engines Ranking of Vector DBMS 

https://db-engines.com/en/ranking/vector+dbms

 

데이터 저장 및 읽기까지 9단계 과정 필요

통상 벡터 DB에 데이터를 저장하고 이를 읽어오기까지는 9단계 과정이 필요하다. 기업이 자체적으로 작성한 신입사원 백서 파일을 벡터 DB에 저장하고 신입사원이 기업 전용 생성형 AI 챗봇에 질의하고 받기까지 과정을 예로 들어 보자. 먼저 구축된 벡터 DB에 덩어리(청크, Chunk) 형태로 백서 파일을 변환해야 한다. 청크는 의미 있는 단위로 나누는 것을 의미한다. 이후 청크 형태로 바뀐 신입사원 백서 데이터를 임베딩 모델에 넣어 벡터화한다. 이렇게 벡터화된 신입사원 백서 데이터를 벡터 DB에 넣기 전 인덱싱(Indexing)을 통해 정렬하고 벡터 DB에 저장한다. 여기까지가 신입사원 백서 파일을 벡터화하고 벡터 DB에 저장하는 과정으로 볼 수 있다. 이때 사내 규정 및 거버넌스가 바뀌면서 백서가 수정될 경우 벡터 DB에 실시간으로 반영할 수 있어야 한다.


벡터 DB와 지식그래프 비교 (출처: medium.aiplanet.com)
이후 신입사원이 기업용 생성형 AI 챗봇에 입사 첫해 여름휴가를 최대 며칠까지 사용할 수 있는지 질의한다면, LLM과 연동된 랭체인을 통해 쿼리를 임베딩 모델에 넣어 벡터화한다. 이후 벡터화된 질의문을 벡터 DB 내 인덱스에서 유사 벡터 군집(휴가에 대한 정보들) 및 벡터 데이터(입사 첫해 여름휴가 정보)를 찾고 이를 다시 LLM에 보내 사용자가 이해할 수 있는 답변으로 치환해 보여주는 방식이다. 이러한 과정은 타 DB와 별다른 차이점이 없다.
 

 

 

다음은 벡터 DB를 생성하는 코드입니다.

# build_vector_db.py
from langchain_community.document_loaders.csv_loader import CSVLoader
from langchain_community.vectorstores import Chroma
from langchain_upstage import UpstageEmbeddings

loader = CSVLoader(
    file_path="./csv/한국산업은행_금융 관련 용어_20151231.csv", encoding="cp949"
)
pages = loader.load()
print(pages[:2])

us_model =  UpstageEmbeddings(
    api_key="up_ULzGbJVs57bcnNHm8D0KdI51Nzl4F",
    model="solar-embedding-1-large"
)

Chroma.from_documents(pages, us_model, persist_directory="./database")

코드 블록별로 설명하면 아래과 같습니다.

  • CSV 파일 로드

실습에 사용되는 파일을 로드합니다. CSVLoader 객체를 사용하여 CSV 파일을 로드하고, 반환된 Document 정보를 pages 변수에 저장합니다. 다음 코드는 CSV 파일을 출력하고 샘플 데이터를 출력하는 내용입니다.

loader = CSVLoader(file_path="./csv/한국산업은행_금융 관련 용어_20151231.csv", encoding='cp949')
pages = loader.load()

print(pages[:2])
[Document(metadata={'source': './csv/한국산업은행_금융 관련 용어_20151231.csv', 'row': 0}, page_content='구분: 리스크\n분류: 리스크 개요\n용어: 리스크(Risk)\n설명: 미래수익 또는 자산가치 변동
의 불확실성(Uncertainty)으로 인하여 보유자산에서 손실이 발생할 가능성(신용  시장  금리  유동성리스크 등) 또한 부적절하거나 잘못된 내부절차  시스템 오류  직원의 실수·고의 또는 자연재해 등의 사 건에 의해 손실이 발생할 가능성 (운영리스크 등)'), Document(metadata={'source': './csv/한국산업은행_금융 관련 용어_20151231.csv', 'row': 1}, page_content='구분: 리스크\n분류: 리스크 개요\n용어: 불확실성\n설명: 설사 손실이 발생한다 해도 발생될 것이 확실하고 크기(금액)도 확실히 알 수 있어서 회피 또는 수용하기로 의사결정하고 나면 그것은 더 이상 리스크가 아님')]
  • 임베딩 모델 로딩

업스테이지 랭체인 인터페이스를 사용해서 solar-embedding-1-large 모델을 로딩합니다.

us_model = UpstageEmbeddings(
    api_key="발급받은 키",
    model="solar-embedding-1-large"
)
  • 벡터 DB 생성

Chroma.from_documents 메서드를 호출해서 로딩한 문서를 임베딩 모델을 통해 임베딩 벡터로 변환하고 이것을 최종적으로 로컬 디렉터리에 저장합니다.

Chroma.from_documents(pages, us_model, persist_directory="./database")

이 명령이 실행되고 나면 임베딩 벡터 외에도 원문 정보, 인덱스, 메타 데이터 등의 각종 정보를 바탕으로 로컬 디렉터리에 데이터베이스가 구성됩니다. 다음은 로컬에 생성된 데이터베이스를 캡처한 자료입니다.

반응형

+ Recent posts