이것은 www.gptflix.ai의 소스 코드입니다
OpenAi, Pinecone DB 및 Sleamlit이있는 GPTFLIX QA BOT를 구축 할 것입니다. 임베딩 모델로 보내기 위해 텍스트를 준비하는 방법을 배웁니다. 업로드를 위해 모델에서 반환 된 임베딩과 텍스트를 캡처합니다. 그 후 Pinecone DB 지수를 설정하고 OpenAI 임베딩을 DB에 업로드하여 봇이 임베딩을 검색 할 수 있습니다.
마지막으로, 우리는 Streamlit과 함께 QA Bot Frontend 채팅 앱을 설정합니다. 사용자가 봇에게 질문을하면 봇은 Pinecone DB의 영화 텍스트를 검색합니다. DB의 텍스트를 기반으로 한 영화에 대한 귀하의 질문에 답할 것입니다.
이것은 자신의 지식-레트로 리안 시스템을 구축하기위한 기본 스캐 폴딩으로 의미합니다. 지금은 매우 기본적입니다!
이 repo에는 gptflix 소스 코드와 간단한 배포 안내서가 포함되어 있습니다.
이 repo는 lemlit에 배포를 위해 설정되므로 환경 변수를 다음과 같이 Sleamlit으로 설정하려고합니다.
GPTFLIX REPO를 GitHub 계정으로 포크하십시오.
pinecone.io에서 계정을 설정하십시오
Streamlit Cloud에서 계정을 설정하십시오
Streamlit에서 새 앱을 만듭니다. github의 저장소 포크에 연결 한 다음 앱을 메인 실행 파일로 /chat/main.py
로 가리 킵니다.
앱 설정으로 이동하여 비밀로 이동하십시오. 다음과 같은 비밀을 설정하십시오.
[API_KEYS]
pinecone = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"
openai = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
.env
파일을 만듭니다. PINECONE_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
물론 당신의 피네콘과 Openai API 키가 필요합니다;)
이 repo는 /data_samples의 MPST 데이터를 사용하여 데모를 통과하도록 설정되었습니다.
p1.generate_index_mpst.py
실행하려면 ./data_sample/d0.mpst_1k_raw.csv
에서 텍스트를 모델에 주입하여 포함 할 수있는 형식으로 텍스트를 준비하십시오. python p1.generate_index_mpst.py
p2.make_jsonl_for_requests_mpst.py
실행하려면 새 d1.mpst_1k_converted.csv
파일을 OpenAI API에 대한 임베딩 요청을 실행하는 지침이있는 JSONL 파일로 변환합니다. python p2.make_jsonl_for_requests_mpst.py
p3.api_request_parallel_processor.py
실행하여 임베딩을 얻습니다. python src/p3.api_request_parallel_processor.py
--requests_filepath data_sample/d2.embeddings_maker.jsonl
--save_filepath data_sample/d3.embeddings_maker_results.jsonl
--request_url https://api.openai.com/v1/embeddings
--max_requests_per_minute 1500
--max_tokens_per_minute 6250000
--token_encoding_name cl100k_base
--max_attempts 5
--logging_level 20
p4.convert_jsonl_with_embeddings_to_csv.py
새로운 JSONL 파일로 실행하여 텍스트와 임베딩으로 예쁜 CSV를 만듭니다. python p4.convert_jsonl_with_embeddings_to_csv.py
p5.upload_to_pinecone.py
실행하여 모든 텍스트 데이터 및 임베딩을 업로드하십시오. python p5.upload_to_pinecone.py
앱을 로컬로 실행할 수 있지만 이미지를 제거해야합니다 (경로는 Streamlit Cloud에서 다릅니다).
현재 Sample_Data에는 Kaggle에서 가져온 일부 데이터가 예제로 있습니다.
[] 메모리 추가 : 이전 질문 / 답변을 요약하고 프리 엔드
[] 다른 모드 추가 : 데이터베이스에서 더 넓은 검색
[] 다른 모드 추가 : 응답을위한 AI 톤 / 문자
[] 더 나은 문서
더 나은 문서가 곧 올 것입니다! 자유롭게 기여하십시오 :)
#특허
MIT 라이센스
저작권 (C) 2023 Stephan Sturges
이에 따라이 소프트웨어 및 관련 문서 파일 ( "소프트웨어")의 사본을 얻는 사람에게는 허가가 부여됩니다. 소프트웨어의 사용, 복사, 수정, 합병, 배포, 배포, 숭고 및/또는 소프트웨어의 사본을 판매 할 권한을 포함하여 제한없이 소프트웨어를 처리 할 수 있도록 소프트웨어를 제공 할 권한이 없습니다.
위의 저작권 통지 및이 권한 통지는 소프트웨어의 모든 사본 또는 실질적인 부분에 포함되어야합니다.
이 소프트웨어는 상업성, 특정 목적에 대한 적합성 및 비 침해에 대한 보증을 포함하여 명시 적 또는 묵시적 보증없이 "그대로"제공됩니다. 어떠한 경우에도 저자 또는 저작권 보유자는 계약, 불법 행위 또는 기타, 소프트웨어 또는 소프트웨어의 사용 또는 기타 거래에서 발생하는 계약, 불법 행위 또는 기타의 행동에 관계없이 청구, 손해 또는 기타 책임에 대해 책임을지지 않아야합니다.