################################################################################
# ____ _ ____ _ _ #
# / ___|___ | |__ ___ _ __ ___ / ___| __ _ _ __ __| | |__ _____ __ #
# | | / _ | '_ / _ '__/ _ ___ / _` | '_ / _` | '_ / _ / / #
# | |__| (_) | | | | __/ | | __/ ___) | (_| | | | | (_| | |_) | (_) > < #
# _______/|_| |_|___|_| ___| |____/ __,_|_| |_|__,_|_.__/ ___/_/_ #
# #
# This project is part of Cohere Sandbox, Cohere's Experimental Open Source #
# offering. This project provides a library, tooling, or demo making use of #
# the Cohere Platform. You should expect (self-)documented, high quality code #
# but be warned that this is EXPERIMENTAL. Therefore, also expect rough edges, #
# non-backwards compatible changes, or potential changes in functionality as #
# the library, tool, or demo evolves. Please consider referencing a specific #
# git commit or version if depending upon the project in any mission-critical #
# code as part of your own projects. #
# #
# Please don't hesitate to raise issues or submit pull requests, and thanks #
# for checking out this project! #
# #
################################################################################
유지관리자: Cohere ConvAI 팀
프로젝트 유지 기간(YYYY-MM-DD): 2023-03-01
Cohere의 대규모 언어 모델을 기반으로 대화형 AI 구축
conversant
에게 맡기세요conversant
설치 conversant
질문에 답하고 다양한 챗봇 페르소나를 사용하여 사용자와 대화할 수 있는 사용자 정의 가능한 대화 에이전트(일명 챗봇)를 구축하기 위한 진행 중인 프레임워크입니다. conversant
모듈식, 유연성 및 확장성을 목표로 하여 원하는 모든 종류의 챗봇을 만들 수 있습니다!
우리는 ? 클라이언트 지원 상담원, ⌚️ 시계 판매 상담원, ?? 등 다양한 맞춤형 페르소나를 제공합니다. 수학 선생님, 그리고? 환상의 마법사. 설명과 대화 예시만으로 나만의 페르소나를 만들어보세요!
출시 블로그 게시물에서 conversant
가 Cohere Sandbox의 일부인 방식에 대해 자세히 알아보세요.
여기에서 Streamlit 데모를 conversant
보세요! ?
conversant
PyPI에서 사용할 수 있으며 Python 3.8+ 및 Cohere 2.8.0+에서 테스트되었습니다.
pip install conversant
먼저 실제 작동 모습을 보고 싶으신가요? 여기에 아무것도 설치하지 않고도 Streamlit 앱에서 conversant
사용할 수 있습니다! ?
Cohere는 Streamlit을 사용하여 데모 애플리케이션을 만듭니다. Streamlit을 처음 사용하는 경우 여기에서 설치하고 여기에서 Streamlit 명령 실행에 대한 자세한 내용을 읽어보세요.
이 Streamlit 데모를 로컬에서 수정하려면 PyPI에서 라이브러리로 설치하는 대신 이 저장소를 포크하는 것이 좋습니다.
Streamlit 데모의 자체 인스턴스를 실행하려면 먼저 COHERE_API_KEY
가 필요합니다. Dashboard.cohere.ai를 방문하여 생성할 수 있습니다.
Streamlit 앱을 로컬에서 실행하려는 경우 .streamlit/secrets.toml
에 키를 추가할 수 있습니다.
COHERE_API_KEY = "YOUR_API_KEY_HERE"
로컬로 실행할 때 Streamlit은 secrets.toml
파일을 읽고 이러한 값을 환경 변수에 자동으로 주입합니다. 또는 명령줄에서 다음 명령을 실행하여 API 키를 환경 변수로 직접 설정할 수도 있습니다.
export COHERE_API_KEY = "YOUR_API_KEY_HERE"
다음 명령을 사용하여 명령줄에서 Streamlit 앱을 시작합니다.
streamlit run conversant/demo/streamlit_example.py
대신 호스팅된 Streamlit 앱을 생성하려면 Secrets Management를 통해 Streamlit에 Cohere API 키를 추가하세요. 다음 줄을 비밀로 추가하세요.
COHERE_API_KEY = "YOUR_API_KEY_HERE"
Streamlit 앱의 인스턴스가 있으면 맞춤형 페르소나 생성 실험을 시작할 수 있습니다! conversant/personas
디렉터리에서 각 페르소나에 대한 config.json
을 확인하세요. 이 디렉터리 내에 새 페르소나에 해당하는 하위 폴더를 만들고 config.json
파일을 추가해야 합니다.
참고로 PyPI에서 라이브러리로 설치하는 대신 sandbox-conversant-lib
저장소를 포크하는 것이 좋습니다. 새 페르소나를 생성할 때 복제된 저장소의 personas
디렉터리를 사용하세요. 디렉터리 구조는 다음과 같아야 합니다.
conversant/personas
├── fortune-teller
│ └── config.json
└── your-persona-name # new
└── config.json
구성 파일에는 다음이 포함되어야 합니다.
chatbot_config
:max_context_examples
: 챗봇이 응답에 사용할 채팅 기록의 길이입니다.avatar
: 챗봇의 아바타 이미지를 위한 선택적 이모티콘 단축 코드 또는 URL입니다. 기본값은 ?입니다.client_config
: co.generate()
에 대한 매개변수chat_prompt_config
:preamble
: 페르소나에 대한 설명입니다.example_separator
: 각 예제 대화를 구분하는 문자열입니다.headers
: bot
과 user
의 이름입니다.examples
: 몇 가지 대화 예(few-shot) 또는 비어 있음(zero-shot). 나머지 conversant
이 알아서 할게요! 예를 들어 fortune-teller/config.json
확인하세요. Streamlit 앱을 실행하면 드롭다운 메뉴에 새로운 페르소나가 나타납니다.
사용자 정의 페르소나의 하위 집합으로 앱을 실행하려면 원하는 페르소나만 포함하는 새 디렉터리를 생성할 수 있습니다. 이는 conversant/personas
디렉터리와 유사하며 동일한 구조를 가져야 합니다.
custom-personas
├── your-first-persona
│ └── config.json
└── your-second-persona
└── config.json
이 디렉터리를 만든 후에는 이를 찾을 위치를 앱에 알려야 합니다. 데모 Streamlit 앱( streamlit_example.py
)에서 첫 번째 줄 중 하나는 CUSTOM_PERSONA_DIRECTORY = None
입니다. 원하는 페르소나 디렉터리를 지정하려면 이를 변경하세요(예: CUSTOM_PERSONA_DIRECTORY = "/Users/yourname/custom-personas"
.
이것이 변경되지 않으면 앱은 기본적으로 conversant
데모 페르소나가 포함된 디렉터리를 사용하게 됩니다.
드롭다운 메뉴에 새 페르소나가 표시되지 않으면 사용자 정의 페르소나 디렉터리를 지정해야 할 수도 있습니다. 위의 지침에 따라 페르소나를 찾을 위치를 앱에 알려주세요.
Streamlit 앱에서도 페르소나를 편집할 수 있습니다!
conversant
사용하면 다음 코드 조각만으로 Cohere의 대규모 언어 모델을 기반으로 하는 챗봇을 만들 수 있습니다.
import cohere
import conversant
co = cohere . Client ( "YOUR_API_KEY_HERE" )
bot = conversant . PromptChatbot . from_persona ( "fantasy-wizard" , client = co )
print ( bot . reply ( "Hello!" ))
>> > "Well met, fair traveller. What bringest thou to mine village?"
자신만의 ChatPrompt
전달하여 자신만의 페르소나를 정의할 수도 있습니다.
from conversant . prompts import ChatPrompt
shakespeare_config = {
"preamble" : "Below is a conversation between Shakespeare and a Literature Student." ,
"example_separator" : " n " ,
"headers" : {
"user" : "Literature Student" ,
"bot" : "William Shakespeare" ,
},
"examples" : [
[
{
"user" : "Who are you?" ,
"bot" : "Mine own nameth is Shakespeare, and I speaketh in riddles." ,
},
]
],
}
shakespeare_bot = conversant . PromptChatbot (
client = co , prompt = ChatPrompt . from_dict ( shakespeare_config )
)
print ( shakespeare_bot . reply ( "Hello!" ))
>> > "Greeteth, and welcome. I am Shakespeare, the great poet, dramatist, and playwright."
conversant
프롬프트 완성을 사용하여 설명과 몇 가지 예가 포함된 챗봇 페르소나를 정의합니다. 프롬프트는 자동 회귀 언어 모델에 대한 Cohere의 co.generate()
엔드포인트에 대한 입력으로 전송되어 예제와 현재 대화 컨텍스트에서 몇 번의 샷 방식으로 텍스트를 생성합니다.
각 사용자 메시지와 챗봇 응답은 채팅 기록에 추가되므로 향후 응답은 해당 시점의 대화 컨텍스트에 따라 결정됩니다.
앞으로는 로컬 문서 캐시에서 검색된 텍스트를 사용하여 사실에 기반을 둔 챗봇 기능을 추가할 계획입니다.
자세한 내용은 CONTRIBUTORS.md
의 이 섹션을 참조하세요.
전체 문서는 여기에서 찾을 수 있습니다.
질문이나 의견이 있는 경우 문제를 제기하거나 Discord를 통해 문의해 주세요.
이 프로젝트에 기여하고 싶다면 이 저장소의 CONTRIBUTORS.md
읽고 풀 요청을 제출하기 전에 기여자 라이센스 계약에 서명하세요. Cohere CLA에 서명하기 위한 링크는 Cohere 저장소에 처음 풀 요청을 할 때 생성됩니다.
이 저장소에 코드를 제출하는 방법에 대한 지침 외에도 CONTRIBUTORS.md
에는 개발자가 시작하는 데 도움이 되는 연습과 conversant
내부적으로 어떻게 작동하는지 설명하는 회로도가 포함되어 있습니다. ?
conversant
MIT 라이센스를 가지고 있습니다.