
PIPPA는 Langchain 프레임 워크를 기반으로 한 Open-Source Lange Language Model (LLM) 챗봇 프로젝트입니다. 그것은 개인화되고 적응 형 대화 경험을 제공하는 것을 목표로합니다.
PIPPA는 챗봇의 성격을 사용자 정의하고 학습 문서를 수집하고 대화 기록을 기억하며 다른 문자를 전환하며 사용자의 요구에 적응하는 기능을 포함하여 적응 프로세스를 향상시키는 다양한 기능을 통합합니다.
검색 QA 모듈은 Prompt Engineering에서 LocalGPT에서 영감을 받았습니다.
PIPPA 프로젝트는 AI 딸 캐릭터를 만들 가능성을 탐구하기 위해 개인적인 취미로 시작했습니다. 아직 초기 단계이지만 프로젝트는 새로운 기능과 개선으로 정기적으로 업데이트됩니다. PIPPA의 기본 역할은 시스템 메시지의 "시스템", "Pippa"는 돌보는 딸 캐릭터로, 아버지로서 "Bundy"입니다.
TTS/STT 엔진을 사용할 때 PIPPA는 ElevenLabs API를 사용합니다. 무료 계정에 가입 할 수 있습니다 : https://elevenlabs.io.
더 나은 경험을 위해, 캐릭터에 독특한 목소리를 할당하십시오.
Python 3.10으로 테스트.
PIPPA를 설치하려면 다음 단계를 따르십시오.
git clone https://github.com/neobundy/pippaGPT.git cd pippaGPT pip install -r requirements.txt참고 : 오류가 발생하면
ffmpeg및portaudio와 같은 추가 종속성을 설치해야 할 수도 있습니다. MacOS에서는 홈브류를 사용할 수 있습니다.설치하려면 다음 명령을 실행하십시오.
brew install ffmpeg brew install portaudio
env_sample .env 파일로 작성하거나 복사하고 API 키를 추가하십시오.hugging_face_api_key는 향후 사용하기위한 것입니다.
OPENAI_API_KEY=
XI_API_KEY=
HUGGING_FACE_API_KEY=
SERPAPI_API_KEY=또는 터미널에서 이러한 환경 변수를 내보낼 수 있습니다.
characters_samply.py characters.py 로 복사하고 파일을 편집하여 AI의 이름과 성격을 사용자 정의하십시오.
settings_private_sample.py settings_private.py 에 복사합니다. settings_sample.py to settings.py 에서 파일을 편집하여 설정을 사용자 정의합니다.
settings.py 파일에서 llms 모델을 선택하십시오.
DEFAULT_GPT_MODEL = "gpt-3.5-turbo"
DEFAULT_GPT_HELPER_MODEL = "gpt-3.5-turbo-16k"
DEFAULT_GPT_QA_HELPER_MODEL = "gpt-3.5-turbo-16k"큰 맥락에는 더 많은 토큰이 필요합니다. 16K 토큰으로는 대부분의 경우 충분합니다.
Default_GPT_MODEL 용 GPT-4 모델은 더 나은 경험을 위해 적극 권장하지만 10 배 비싸며 사전 지불 된 OpenAI 계정에만 사용할 수 있습니다.
settings_private.py 에있는 일부 민감하거나 사용자 별 설정. ZEP_API_URL = "http://localhost:8000"
DEFAULT_MEMORY_TYPE = "Summary Buffer"
AUDIO_SERVER_URL = "http://localhost:5000" 기본적으로 Langchain의 "Summary Buffer"메모리는 대화 컨텍스트를 유지하는 데 사용됩니다.
Pippa는 6 가지 유형의 추억을 지원합니다.
ZEP는 큰 상황에 적극 권장됩니다. Docker 컨테이너로 로컬로 실행할 수 있습니다. settings_private.py 를 편집하십시오.
요약 유형 메모리가 Zep을 포함하여 선택 될 때 요약이 나타납니다. 요약은 요약 GTP 도우미 모델에 의해 생성됩니다.
ZEP가 인덱스 및 요약을 생성하는 데 시간이 걸립니다. 준비가되지 않았을 때 "요약 ... 인내심을 갖으십시오." 메시지가 나타납니다.
ZEP_API_URL = "http://localhost:8000" ZEP 서버는 모든 호스트 또는 포트에서 실행할 수 있습니다. 다른 호스트에서 실행되면 settings_private.py 에서 ZEP_API_URL 변수를 업데이트하십시오.
Zep을 실행하는 방법을 배우려면 https://www.getzep.com/을 방문하십시오.
PIPPA 앱을 실행하려면 다음 명령을 사용하십시오.
streamlit run main.py 앱은 포트 5000에서 청취하는 오디오 서버를 자동으로 시작합니다. 필요한 경우 audio_server.py 실행하여 오디오 서버를 수동으로 실행할 수 있습니다.
PIPPA가 배울 수있는 자신의 문서를 얻으려면 다음을 수행하십시오.
docs 폴더에 문서 (예 : PDF, DOCX, XLSX, TXT, MD, PY)를 배치하십시오.vectordb.py 스크립트를 실행하여 벡터 데이터베이스를 만듭니다. python vectordb.pyElevenLabs API 키가있는 경우 PIPPA와 함께 TTS (텍스트 음성) 엔진을 사용할 수 있습니다.
stt (speech-to-text)는 OpenAi의 Whisper-1 모델에 의해 처리됩니다.
다음 단계를 따르십시오.
tts.py 스크립트를 실행하여 ElevenLabs 계정에서 사용 가능한 음성 이름 및 ID를 얻으십시오. python tts.py 적절한 음성 ID로 settings_private.py 에서 다음 변수를 업데이트하십시오.
VOICE_ID_AI = ""
VOICE_ID_SYSTEM = ""
VOICE_ID_HUMAN = ""audio_server.py 실행하여 수동으로 서버를 실행할 수도 있습니다. settings.py 파일을 편집하여 PIPPA에 사용 된 프롬프트 키워드 접두사를 사용자 정의 할 수 있습니다.
PROMPT_KEYWORD_PREFIX_SYSTEM : 임시 시스템 메시지에 사용됩니다 (기본값 : "시스템 :")PROMPT_KEYWORD_PREFIX_CI : 사용자 정의 지침을 대체하는 데 사용됩니다 (기본값 : "ci :")PROMPT_KEYWORD_PREFIX_QA : docs 폴더의 문서를 기반으로 QA를 검색하는 데 사용됩니다 (기본값 : "QA :")PROMPT_KEYWORD_PREFIX_GOOGLE : 주어진 정보를 위해 웹을 검색하는 데 사용됩니다 (기본값 : "Google :")PROMPT_KEYWORD_PREFIX_WIKI : Wikipedia 검색에 사용됩니다 (기본값 : "Wiki :")PROMPT_KEYWORD_PREFIX_MATH : 수학 쿼리에 사용 (기본값 : "math :")PROMPT_KEYWORD_PREFIX_MIDJOURNEY : Midjourney 프롬프트 생성에 사용됩니다 (기본값 : "Midjourney :") 스트리밍은 기본적으로 활성화됩니다. 비활성화하려면 settings.py 파일을 다음과 같이 수정하십시오.
STREAMING_ENABLED = True스트리밍이 활성화되면 비용은 OpenAI의 문서를 기반으로 근사치입니다. 정확한 비용을 얻으려면 스트리밍을 비활성화해야합니다.
비용 계산에는 요약 및 QA와 같은 보조 GPT 모델에서 발생한 다른 비용은 포함되지 않습니다.
settings.py 에서 다음 상수를 설정하십시오.
DEFAULT_GPT_AGENT_HELPER_MODEL = "gpt-4" MAX_AGENTS_ITERATIONS = 8반복 횟수는 에이전트가 실행할 수 있는지를 결정합니다. 많은 수의 반복은 일반적으로 더 정확한 답변으로 이어 지지만 더 많은 토큰을 소비합니다.
Google 검색 에이전트는 최상의 답변을 얻으려면 여러 쿼리를 수행해야 할 수도 있습니다.
예를 들어, "한국, 미국 및 일본 주 대표 중 가장 오래된 사람은 누구입니까?"라고 물으면 최종 답변을 얻으려면 에이전트가 최소 3-4 번 쿼리해야 할 것입니다.
동일한 모델이 동일한 쿼리에 다르게 응답 할 수 있습니다. 'GPT-4'조차도 항상 최고를 수행하는 것은 아니지만 강력히 권장됩니다. 다른 모델로 실험하십시오.
랑 체인 수준에서도 실험적이라는 점에 유의하십시오. 예상대로 작동하지 않을 수 있습니다.
프롬프트 기술에 따라 히트 또는 미스 상황입니다. Google 검색 기능을 사용하려면 Serpapi API 키가 필요합니다 : https://serpapi.com. 제공된 최종 답변은 기본 모델의 중간 프롬프트 역할을합니다.
에이전트는 먼저 주어진 쿼리의 관련 Wikipedia 페이지를 찾으려고 시도합니다. 발견되면 페이지 요약을 반환하고 요약 내의 특정 용어를 검색합니다.
LLM은 수학 능력으로 알려져 있지 않습니다. 수학 에이전트는 매우 복잡한 수학 문제에 대한 정확한 답변을 제공합니다.
벡터 데이터베이스를 관리하려면 vectordb.py 스크립트를 실행하십시오.
python vectordb.py다음 옵션이 있습니다.
settings.CHROMA_DB_FOLDER 폴더에서 새 벡터 데이터베이스를 만듭니다 settings.VECTORDB_COLLECTIONsettings.CONVERSATION_SAVE_FOLDER 폴더에서 대화를 포함시켜 장기 메모리 역할을합니다. (e) MBED 대화 옵션을 선택할 때 기존 내보내기 대화 *.json 만 snapshot.json 제외한 벡터 데이터베이스에 포함됩니다.
앱을 실행할 때 오류가 발생하면 다음 단계를 시도하십시오.
pip install --upgrade charset_normalizer
pip install --upgrade openai
pip install --upgrade langchain
PIPPA는 Apache 2.0 라이센스에 따라 릴리스됩니다. 개인 또는 상업적 목적으로 코드를 사용, 수정 및 배포하십시오.