chatbot_support_vision
ON으로 설정)*제휴되지 않은 외부 API 서비스에 가입해야 합니다. 설정의 링크.
두 가지 모드가 있습니다:
RAG 모드는 매우 똑똑하며 포럼에 게시된 사실을 알고 있습니다.
기본 봇 모드는 때때로 실수할 수 있지만 대규모 언어 모델에 대한 호출이 적기 때문에 실행하는 것이 더 저렴합니다.
이 봇은 포럼의 공개 공간에서 사용할 수 있습니다. 봇을 특히 유용하게 만들기 위해 RAG 모드(봇 신뢰 수준당 하나의 설정)가 있습니다. 이는 기본적으로 설정되어 있지 않습니다.
RAG 모드에서 봇은 기본적으로 신뢰 수준 1 사용자가 볼 수 있는 모든 콘텐츠에 대한 chatbot embeddings strategy
(기본값 benchmark_user
)을 설정하여 관리됩니다. 따라서 공개 주제에서 상호 작용하는 경우 카테고리 권한을 통해 신뢰 수준 0 또는 1 수준에서 콘텐츠를 차단하는 경향이 있는 경우 봇이 정보를 "유출"할 가능성이 있습니다. 이 수준은 경험상 대부분의 사이트가 일반적으로 낮은 신뢰 수준에서 민감한 콘텐츠를 차단하지 않지만 특정 요구 사항에 따라 다르기 때문에 선택되었습니다.
이 모드의 경우 신뢰 수준 1을 가진 사용자가 한 명 이상 있고 자동화된 그룹 이외의 추가 그룹 구성원이 없는지 확인하십시오. (그러면 봇은 TL1 수준 사용자가 알고 공유할 수 있는 모든 것을 알게 됩니다.) 자동화된 그룹 외에 추가 그룹 멤버십이 없는 신뢰 수준 0 사용자가 있는 경우 chatbot embeddings benchmark user trust level
낮추도록 선택할 수 있습니다.
또는:
chatbot embeddings strategy
category
로 전환하고 봇이 알기를 원하는 카테고리로 chatbot embeddings categories
채웁니다. (비공개 카테고리를 추가하는 경우 봇이 공개적으로 말하는 내용과 모든 내용을 알아야 하며 권한이 낮은 사용자에게 정보가 유출될 수 있으므로 추가하는 내용에 약간 주의하세요.)basic
모드에서만 봇을 사용하세요(그러나 그러면 봇은 어떤 게시물도 볼 수 없습니다)이 설정은 절충안임을 알 수 있습니다. 봇을 유용하게 만들려면 사이트의 콘텐츠에 대해 잘 알고 있어야 합니다. 현재 봇이 회원 전용 콘텐츠를 선택적으로 읽고 일부 관리자가 제한할 수 있는 회원과만 공유하는 것은 불가능하지만 봇이 공개적으로 대화할 수 있는 동안 이를 쉽게 해결할 수 있는 방법은 없습니다. 특별한 도움이 필요하고 이 공간에서 일부 작업을 후원하고 싶다면 저에게 연락하세요. 의미론적 검색을 통한 봇 권한 부여는 사소한 문제가 아닙니다. 시스템은 현재 속도에 최적화되어 있습니다. NB 비공개 메시지는 봇이 절대 읽지 않습니다.
Chatbot이 사이트의 콘텐츠에 대해 알 수 있도록 하려면 이 설정을 켜십시오.
chatbot_embeddings_enabled
RAG 유형의 봇을 사용하고 현재 주제뿐만 아니라 포럼의 콘텐츠를 인식하려는 경우에만 필요합니다.
처음에는 봇이 포럼 정보를 찾을 수 있도록 모든 범위 내 게시물에 대한 임베딩을 생성해야 합니다. 이제 이 설정이 활성화되면 백그라운드에서 이 작업이 수행되므로 아무 작업도 수행할 필요가 없습니다.
매우 큰 사이트의 경우 이 시딩 작업에 며칠이 걸릴 수 있습니다.
이는 여러 설정에 의해 결정됩니다.
chatbot_embeddings_strategy
는 "benchmark_user" 또는 "category"일 수 있습니다.chatbot_embeddings_benchmark_user_trust_level
전자에 대한 관련 신뢰 수준을 설정합니다.chatbot_embeddings_categories
category
전략이 설정된 경우 지정된 카테고리의 모든 게시물을 고려할 수 있는 봇 액세스 권한을 부여합니다.이러한 설정을 변경하면 시간이 지남에 따라 임베딩 모집단이 변화합니다.
컨테이너를 입력하세요:
./launcher enter app
그리고 다음 rake 명령을 실행하세요:
rake chatbot:refresh_embeddings[1]
현재는 알 수 없는 이유로 두 번 실행되지만(죄송합니다! 자유롭게 PR하세요) [1]
은 두 번째로 누락된 임베딩만 추가하도록 보장하므로(즉, 첫 번째 실행 직후에는 없음) 다소 논란의 여지가 있습니다.
드물지만 OpenAI에 의해 속도가 제한되는 경우(가능성이 낮습니다!) 다음을 수행하여 임베딩을 완료할 수 있습니다.
rake chatbot:refresh_embeddings[1,1]
누락된 항목을 채우므로(오류로 인해 손실된 항목은 없음) Open AI에 대한 각 호출 사이에 1초의 지연을 더 조심스럽게 계속 추가합니다.
봇 상호 작용에 비해 임베딩은 생성하는 데 비용이 많이 들지 않지만 어떤 경우에도 Open AI 대시보드에서 사용량을 살펴보세요.
NB 임베딩은 게시물과 신뢰 수준 1 사용자가 액세스할 수 있는 게시물에 대해서만 생성됩니다. 이는 합리적인 타협처럼 보였습니다. 신뢰 수준 2 이상인 액세스 가능한 콘텐츠의 게시물에 대해서는 임베딩을 생성하지 않습니다.
@37Rb는 다음과 같이 썼습니다. "다른 사람에게 도움이 될 수 있도록 데이터 탐색기 플러그인과 함께 임베딩을 모니터링하고 확인하는 데 사용하는 SQL 쿼리가 있습니다."
SELECT e.id, e.post_id AS post, p.topic_id AS topic, p.post_number,
p.topic_id, e.created_at, e.updated_at, p.deleted_at AS post_deleted
FROM chatbot_post_embeddings e LEFT JOIN posts p ON e.post_id = p.id
다음과 같은 오류가 발생할 수 있습니다.
OpenAI HTTP Error (spotted in ruby-openai 6.3.1): {"error"=>{"message"=>"This model's maximum context length is 8192 tokens, however you requested 8528 tokens (8528 in your prompt; 0 for the completion). Please reduce your prompt; or completion length.", "type"=>"invalid_request_error", "param"=>nil, "code"=>nil}}
이렇게 해결하세요...
오류 메시지에 따라 임베딩 모델의 제한은 다음과 같습니다.
8192 tokens
however you requested 8528
이 설정의 현재 값을 삭제해야 합니다.
chatbot_open_ai_embeddings_char_limit:
diff의 약 4배만큼 작동하는지 확인하세요(토큰은 대략 4자입니다).
따라서 이 예에서는 4 x (8528 - 8192) = 1344입니다.
따라서 안전을 위해 chatbot_open_ai_embeddings_char_limit
현재 값을 1500으로 낮추세요. 다만, 영문포스트에 대해서는 많은 테스트를 거쳐 기본값이 설정되었으나, 다른 언어의 경우에는 낮춰야 할 수도 있습니다.
그러면 더 많은 텍스트와 요청 토큰이 잘리고 삽입이 완료되기를 바랍니다. 그렇지 않은 경우 차이를 확인하고 이에 따라 더 줄여야 합니다. 결국에는 충분히 낮아져서 다시 볼 필요가 없습니다.
설정을 변경하는 것 외에는 아무것도 할 필요가 없습니다. 점진적이라면 백그라운드 작업이 모든 작업을 처리합니다.
프로세스 속도를 정말로 높이려면 다음을 수행하십시오.
chatbot_open_ai_embeddings_model
설정을 원하는 새 모델로 변경하세요../launcher enter app
rails c
에 들어가세요::DiscourseChatbot::PostEmbedding.delete_all
실행하세요.exit
(컨테이너 내 루트로 돌아가기)rake chatbot:refresh_embeddings[1]
실행chatbot_forum_search_function_similarity_threshold
삭제해야 할 수도 있고 그렇지 않으면 결과가 없을 수도 있습니다 :). 기본값을 0.8
에서 0.6
으로 낮추었지만 마일리지는 다를 수 있습니다. 잠시 시간을 내어 플러그인 설정 전체를 읽어보세요. chatbot bot type
설정이 핵심이며, 각 챗봇 "신뢰 수준"마다 하나씩이 있습니다.
RAG 모드는 우수하지만 API를 더 많이 호출하므로 비용이 증가할 수 있습니다. 즉, 궁극적으로 '환각'을 출력하는 경향이 감소하면 GPT-4에서 GPT-3.5로 내려갈 수 있게 되고 출력의 유용성과 신뢰성이 크게 증가함에도 불구하고 지출을 줄일 수 있습니다. GPT 3.5는 응답 시간을 기준으로 하는 에이전트 유형에도 더 적합합니다. 잠재적인 윈윈! 실험!
Chatbot이 Chat에서 작동하려면 Chat을 활성화해야 합니다.
이는 대부분 귀하의 재량에 따라 chatbot_reply_job_time_delay
설정에 따라 결정됩니다.
이 설정의 목적은 다음과 같습니다.
이제 기본값은 '1'초이며 이제 0으로 줄일 수 있습니다. 하지만 위의 위험에 유의하세요.
이 0을 설정하면 '에이전트' 모드에서도 봇이 훨씬 더 '빠른' 상태가 됩니다.
분명히 이것은 약간 인위적일 수 있으며 실제 사람은 실제로 그렇게 빨리 입력하지 않을 것입니다. 그러나 귀하의 취향과 지갑 크기에 맞게 설정하십시오.
NB Open AI API의 응답 속도를 직접 제어할 수는 없습니다. 일반적인 규칙은 설정한 모델이 더 정교할수록 일반적으로 이 응답이 느려진다는 것입니다. 따라서 GPT 3.5는 GPT 4보다 훨씬 빠릅니다. 하지만 최신 GPT 4 Turbo 모델에서는 변경될 수 있습니다.
Chatbot이 Chat에서 작동하려면 Chat을 활성화해야 합니다.
현재 봇을 사용하려면 https://platform.openai.com/에서 토큰을 받아야 합니다. 기본 언어 모델이 설정되어 있지만(가장 정교한 것 중 하나) 더 저렴한 대안을 시도해 볼 수 있습니다. 목록은 여기에 있습니다.
설정에는 자동화된 부분이 있습니다. Discourse에 추가하면 플러그인은 현재 다음 속성을 가진 AI 봇 사용자를 설정합니다.
원하는 대로 이름, 아바타 및 약력(관리자 -> 사용자 정의 -> 텍스트의 로캘 문자열 참조)을 편집할 수 있지만 언급하기 쉽게 만드세요.
처음에는 직원을 포함해 누구도 봇에 접근할 수 없습니다.
초기 무료 할당이 만료된 후에는 Open AI API를 호출하는 것이 무료가 아닙니다! 그래서 저는 이를 통제하고 비용을 낮추며 남용을 방지하기 위해 할당량 시스템을 구현했습니다. 이러한 작은 상호 작용에는 비용이 많이 들지 않지만, 인기가 높아지면 비용이 늘어날 수 있습니다. OpenAI 가격에 대한 자세한 내용은 가격 페이지에서 확인할 수 있습니다.
봇과 상호 작용하려면 세 가지 수준의 신뢰할 수 있는 그룹 집합(낮음, 중간, 높음 신뢰 그룹 집합) 중 하나에 추가된 그룹에 속해야 합니다. 해당 설정에서 신뢰할 수 있는 그룹 세트별로 주당 허용되는 상호 작용 수를 각각 수정할 수 있습니다.
그룹도 채워야 합니다. 해당 구성은 전적으로 귀하에게 달려 있습니다. 공백으로 시작하므로 처음에는 누구도 봇에 액세스할 수 없습니다 . 세 가지 추가 설정에 해당 할당량이 있습니다.
사용자는 자신이 구성원으로 속해 있는 가장 신뢰할 수 있는 그룹을 기준으로 할당량을 받습니다.
봇이 수신하는 내용과 봇이 응답하는 방식에 영향을 미치는 여러 로케일 텍스트 "설정"이 있습니다.
변경을 고려해야 할 가장 중요한 것은 봇의 system
프롬프트입니다. 이는 봇과 대화할 때마다 전송됩니다.
기본 봇의 경우 다음과 같은 시스템 프롬프트를 시도해 볼 수 있습니다.
기본 설정 대신 '당신은 극단적인 Formula One 팬입니다. 모터스포츠와 관련된 모든 것과 높은 옥탄가 수준의 흥분을 좋아합니다.'
(에이전트 봇의 경우 "당신은 유용한 보조자입니다." 이후의 모든 내용을 유지해야 합니다. 그렇지 않으면 에이전트 행동이 중단될 수 있습니다. 문제가 발생하면 재설정하세요. 다시 실험해 보세요!)
귀하의 포럼 주제에 가장 적합한 것을 시도해 보십시오. 창의력을 발휘하세요!
이러한 로캘 문자열을 변경하면 봇이 매우 다르게 동작할 수 있지만 즉시 수정할 수는 없습니다. 다른 프롬프트는 상담원 행동에 중요한 역할을 하거나 누가 봇에게 무엇을 말했는지에 대한 정보를 제공하므로 시스템 프롬프트만 변경하는 것이 좋습니다.
NB 주제에서는 봇에게 더 많은 컨텍스트를 제공하기 위해 게시물 창(룩백 설정에 따라 결정됨) 외에 첫 번째 게시물과 주제 제목이 전송됩니다.
chatbot.prompt.
담론-chatbot/config/locales/server.en.yml
262a0a4의 라인 45
봇은 비공개 메시지(구성된 경우)를 포함하여 채팅 메시지와 주제 게시물을 지원합니다.
답장을 보내거나 @멘션하여 봇이 응답하도록 할 수 있습니다. 응답에 대한 컨텍스트를 얻기 위해 봇이 뒤를 보는 정도를 설정할 수 있습니다. 값이 클수록 각 호출에 더 많은 비용이 듭니다.
즉시 봇에 연결되는 떠다니는 빠른 채팅 버튼이 있습니다. 이는 설정에서 비활성화할 수 있습니다. 봇을 1:1 채팅으로 로드할지, 개인 메시지로 로드할지 선택할 수 있습니다.
이제 원하는 아이콘(기본값 ? )을 선택할 수 있습니다. 공백으로 남겨두면 봇 사용자의 아바타가 선택됩니다! ?
그리고 관리 -> 사용자 정의 -> 텍스트 chatbot.
이를 제거하는 데 필요한 유일한 단계는 app.yml
에서 복제 문을 삭제하는 것입니다.
나는 봇이 응답하는 것에 대해 책임을 지지 않습니다 . 플러그인이 베타 단계에 있다고 생각하면 문제가 발생할 수 있습니다. 피드백을 통해 개선될 것입니다. 하지만 반드시 봇이 응답할 필요는 없나요? LLM의 장점과 단점, 그리고 LLM의 능력과 한계, 그리고 한계를 이해하시기 바랍니다. 그들은 설득력 있는 텍스트를 만드는 데 매우 능숙하지만 사실이 틀릴 수 있는 경우가 많습니다.
포럼에 작성한 내용은 회신 메시지가 표시되면 마지막 몇 개의 게시물에 대한 봇 스캔의 일부로 Open AI로 전달될 수 있습니다(분명히 이는 현재 주제 또는 채팅 채널로 제한됩니다). 사전 훈련된 모델에 통합되지는 않을 것이 거의 확실하지만 분석 및 로깅에 데이터를 사용할 것입니다. 포럼의 TOS 및 개인정보 보호정책에 이 사실을 추가하세요 . 관련 링크: https://openai.com/policies/terms-of-use, https://openai.com/policies/privacy-policy, https://platform.openai.com/docs/data-usage-policies
Open AI는 여기에서 저작권에 대한 성명을 발표했습니다: https://help.openai.com/en/articles/5008634-will-openai-claim-copyright-over-what-outputs-i-generate-with-the-api