중요 : 우크라이나 전쟁은 여전히 진행 중입니다. 매일 러시아 군인들은 강간, 살인, 고문 및 우크라이나 민간인을 추방합니다. 오늘 우크라이나를 지원할 수있는 방법을 보려면이 페이지를 방문하십시오.
Horace를 사용하면 LLM과 Chatgpt 플러그인 세트가 포함 된 사용자 정의 챗봇을 구현할 수 있습니다. WebSocket 서버로 실행되므로 웹 또는 모바일 앱에 LLM 구동 챗봇을 쉽게 추가 할 수 있습니다.
특징:
none , user_http , service_httpHorace는 저의 원래 LLM 구동 챗봇 인 Grace를 기반으로 확장합니다. 다음은 Web Client를 통해 액세스하는 Klarna Chatgpt 플러그인으로 디버그 모드에서 실행되는 Horace입니다.
cd horace 로 이동하십시오python3 -m venv ./venvsource ./venv/bin/activatepip3 install -r requirements.txtapp 디렉토리 : cd app 으로 이동하십시오OPENAI_API_KEY=openai-api-key python3 main.py ( openai-api-key OpenAI API 키로 교체-여기에 가져 오십시오). cd horace
source ./venv/bin/activate
python3 app/horace-cli.py
client-demo/index.html 두 번 클릭하여 브라우저에서 열 수 있습니다. cd horace 로 이동하십시오docker build -t horace:latest . docker run --rm
-e OPENAI_API_KEY=openai-api-key
-p 8001:8001
--name horace
horace:latest
docker exec -it horace python3 /app/horace-cli.pyclient-demo/index.html 두 번 클릭하여 브라우저에서 열 수 있습니다. main.py 및 horace-cli.py 몇 가지 명령 줄 인수를 지원합니다.
python3 main.py --help
usage: main.py [-h] [--host HOST] [--port PORT] [--debug]
optional arguments:
-h, --help show this help message and exit
--host HOST bind host name
--port PORT bind port number
--debug enable debug mode
python3 app/horace-cli.py --help
usage: horace-cli.py [-h] [--host HOST] [--port PORT]
optional arguments:
-h, --help show this help message and exit
--host HOST server host name
--port PORT server port number
현재 OpenAI API 백엔드 만 지원됩니다. (지금 당장 플러그인 호출에 충분한 수준의 명령어를 따르는 수준의 비 오페나이 LLM을 알지 못합니다.) 그러나 Horace와 맞춤형 LLM 백엔드를 추가하는 것은 매우 간단합니다.
backends/backend.py 에있는 Backend 베이스에서 새 백엔드 클래스를 상속하고 complete() 메소드를 구현하십시오.backends 디렉토리에 배치하십시오main.py 에 추가하십시오main.py 의 BACKENDS 매핑 조정config.yaml 에서 새 백엔드로 전환하십시오 : backend:
name: my_llm_backend
OpenAI API 백엔드 ( backends/openai_backend.py )를 예로 들어 참조하십시오.
OpenAI API 백엔드를 사용하면 다음 모델을 전환 할 수 있습니다.
OpenAI API 모델 사이를 전환하려면 config.yaml 참조하십시오.
Horace는 상자에서 Chatgpt 플러그인과 함께 작동합니다. 플러그인을 활성화하려면 config.yaml 의 plugins 섹션에 옵션 포트 번호가있는 호스트 이름을 추가하십시오.
router:
plugins:
# For https://github.com/artmatsak/chatgpt-todo-plugin/
# - localhost:5002
- www.klarna.com
시작하면 서버는 각 플러그인에 대해 http://[hostname]/.well-known/ai-plugin.json 요청하고 거기에서 가져와로드합니다.
Horace는 현재 chatgpt 플러그인 user_http none server_http 인증 메소드를 지원합니다. 플러그인에 인증 토큰이 필요한 경우 Horace는 서버 시작 중에 하나를 요청합니다. 현재 인증 토큰은 .plugin_auth.json 에 암호화되지 않은 저장됩니다.
Horace의 기본 LLM 프롬프트는 봇을 중립으로 만들도록 설계되었습니다. 봇은 플러그인을 확보 한 사용자 요청 (예를 들어 식당 예약 봇과 같은)으로 제한되지 않으며 플러그인 지원 기능을 사전에 사용자에게 전달하지도 않습니다. 다시 말해, 당신은 일반적으로 chatgpt와 함께 봇과 채팅 할 수 있습니다. 봇이 플러그인 방법을 호출해야한다고 생각하면 그렇게 할 것입니다.
실제 시나리오에서는 봇을 테이블 예약 (Grace의 영감 프롬프트 참조)과 같은 특정 범위로 봇을 제한하거나 독특한 목소리/성격을 제공 할 수 있습니다. 이렇게하려면 config.yaml 의 extra_instructions 속성을 사용하여 LLM 프롬프트에 지침을 추가 할 수 있습니다.
horace:
# Any extra instructions to prepend the prompt with
extra_instructions: >-
You are a helpful and polite AI assistant.
# extra_instructions: >-
# In your speech, you impersonate Jedi Master Yoda and crack jokes in response
# to mentions of other Star Wars characters.
위의 Yoda 블록을 사용하지 않으려면 챗봇의 음성이 그에 따라 어떻게 변하는 지 확인하십시오. (구성을 변경 한 후 서버를 다시 시작하는 것을 잊지 마십시오.)
Grace의 포킹 이후 아직 테스트가 업데이트되지 않았습니다. 고정.