AI 비디오 검색 엔진 (AVSE)
AI의 최신 도구로 구동되는 비디오 검색 엔진
왜?
Tiktok 및 YouTube와의 짧은 형태의 콘텐츠가 증가함에 따라 훨씬 더 많은 지식이 그 어느 때보 다 비디오에 있습니다. 수백만 개의 비디오 내에서 특정 답변을 찾는 것은 한 사람이 겪기가 어려울 수 있습니다. 따라서 질문은 웹 사이트에서 텍스트를 색인화하는 Google이있는 경우 질문의 맥락에 따라 쉽게 찾을 수있는 Google이없는 이유가없는 이유가있는 이유는 사용자가 더 쉽게 답변을 찾을 수 있도록하는 Google이없는 이유입니다.
그래서 나는 이것을 구축하여 쉽게 구할 수있는 기술과 인프라를 통해 가능하다는 것을 보여주기 위해 이것을 만들었습니다.
기술 스택
- SUPBASE (PostgreSQL, PG_VECTOR, AUTH)
- Hasura (GraphQL 레이어, 권한)
- Fly (Hasura의 호스팅)
- jigsawstack (요약 AI, 채팅 AI)
- Vercel (Nextjs 호스팅, 서버리스 기능)
어떻게 작동합니까?
비디오 저장
- 비디오 전사는 YouTube 비디오에서 추출됩니다
- 전사는 https://huggingface.co/supabase/gte-small dimension size를 기반으로 타임 스탬프와 함께 청크됩니다.
- PG_VECTOR 확장 및 인덱싱을 사용하여 Postgres DB에 저장
수색
- 질문에 따라 DB를 가로 지르는 벡터 코사인 검색을 통해 다시 결과를 반환합니다.
- 결과의 각 비디오는 두 번째 검색을 수행하여 관련 비디오 덩어리를 찾을 수 있습니다.
- 청크는 동영상의 재생 된 클립을 재생하기 위해 타임 스탬프 된 전사 스크립트에 다시 매핑됩니다.
요약 및 채팅
- 비디오의 전사는 포인트 양식과 텍스트의 요약을 위해 Jigsawstack API로 전송됩니다.
- 채팅 세션은 Jigsawstack API에 의해 만들어지고 관리되며, 비디오의 관련 덩어리는 질문에 따라 채팅 세션으로 전송됩니다.
직접 호스팅하기 위해 주목해야 할 것들
- 수천에서 수백만 개의 비디오를 색인 할 계획이라면 유료 Supabase & Fly.io 계정이 필요합니다.
-
admin/config/fly.toml 비행을 위해 Hasura를 배포하는 데 필요한 구성으로 구성됩니다. -
admin/migration 마이그레이션 덤프 Hasura CLI를 통해 스키마를 재현하는 데 사용할 수 있습니다. -
hasura init migration --endpoint <hasuraurl.fly.app> --admin-secret <admin_secret> admin 마이그레이션 폴더를 업데이트하려면 -
admin/indexChannelVideos.ts 스크립트, YouTube 채널을 사용하여 많은 비디오를 로컬로 인덱싱합니다. -
.env.example 키는 프로젝트에 실행해야합니다
FAQ
YouTube는 이것을하지 않습니까?
- 실제로 YouTube는 비디오의 전사 된 오디오를 검색하지 않고 대신 제목, 설명, 태그와 같은 업로더의 서면 내용에 의존합니다. 모든 오디오 컨텐츠는 무례한 상태입니다.
이 스택은 어떻게 수백만 개의 비디오를 처리 할 것입니까?
- 이 현재 설정으로 수백만 명을 처리 할 수 있지만 수십억/조만은 아닐 수도 있습니다. 더 많은 복제본, 인스턴스, 특히 $가 필요합니다
다음은 무엇입니까?
- Tiktok을 비디오 소스로 추가하십시오
- https://replicate.com/vaibhavs10/incredibly-fast-whisper를 추가하여 오디오를 전사하십시오
- 쿼리 성능을 크게 향상시킵니다
- 모든 활성 채팅을 볼 페이지