AI 주별 요약

개요

이번 주 Meta Discourse의 AI 관련 토론은 AI 기능이 UX와 관리자 운영 모두에서 더 “네이티브”하고 신뢰할 수 있게 느껴지도록 하는 것에 중점을 두었습니다.

제품 측면에서, Discourse는 게시물의 원본(raw) 콘텐츠를 오염시키지 않으면서 접근성과 검색성을 향상시키는 백그라운드 AI 이미지 캡션을 출시했으며, 로컬라이즈된 캡션을 위한 AI Translate와의 시너지도 확인했습니다 (Making post images more accessible with Discourse AI, search indexing notes, translation workflow). 데이터 팀도 플러그인 UI에서 직접 AI가 생성한 Data Explorer SQL을 통해 큰 도움을 받았습니다 (Data Explorer :handshake: AI).

UX 측면에서는 **AI 봇 대화용 독킹된 컴포저(docked composer)**가 논쟁을 불러일으켰습니다—특히 Enter 키로 전송하는 동작에 대한 논쟁이었으며, 이는 커뮤니티 테마 컴포넌트 우회책과 관리자 토글을 위한 PR 제안으로 이어졌습니다 (Introducing a docked composer…, follow-up UX feedback, theme component fix, PR reference).

운영 측면에서는, 임베딩 차원 불일치로 인해 500 오류가 발생하는 AI 임베딩 시맨틱 검색에 대한 실질적인 문제 해결이 이루어졌으며, 올바른 차원 크기로 설정을 다시 생성하여 해결되었습니다 (AI Embeddings Semantic Search returns 500 error, dimension mismatch log, solution). 한편, AI Translate에는 개선 사항과 버그 수정이 적용되었습니다: 향상된 번역 진행률 그래프 경험과 삭제된 콘텐츠가 불필요하게 노출/번역되지 않도록 하는 버그 수정입니다 (AI Translation Progress Graph, Deleted posts still show full content…).


흥미로운 주제

  • 게시물 원본을 변경하지 않고 백그라운드 AI 이미지 캡션 (접근성 + 검색) (#Announcements ai ai-image-caption)
    nat은 캡션이 백그라운드에서 생성되어 별도로 저장되고, 게시물 본문에 삽입되는 대신 스크린 리더/검색/라이트박스에서 표시되도록 하는 리워크를 발표했습니다 (Making post images more accessible with Discourse AI). loginerror은 캡션이 크롤링 가능한지 물었고, nat은 캡션이 HTML의 aria-description으로 렌더링되어 Discourse 검색에 포함되지만 외부 크롤러의 가중치는 다르다고 설명했습니다 (crawler Q, aria-description answer). 해당 스레드에서는 번역 시너지도 강조되었는데, 캡션은 번역 컴포저 내에서 언어별로 로컬라이즈되고 편집될 수 있습니다 (AI Translate synergy).

  • Discourse AI로 Data Explorer SQL 생성 (프롬프트를 통한 반복적 쿼리 개선) (#Announcements data-explorer ai)
    Discourse는 관리자가 SQL을 수동으로 작성하거나 /new 및 /edit에서 AI가 쿼리를 생성/수정하도록 하는 AI 헬퍼를 Data Explorer 내에 출시했습니다—이 설정은 디바이스에 저장됩니다 (Data Explorer :handshake: AI). 이번 릴리스는 더 스마트한 “SQL 헬퍼” 경험을 원하는 이전 커뮤니티 요청과도 연결되었습니다 (Empower the SQL helper).

  • 독킹된 AI 봇 컴포저의 마찰: Enter로 전송 vs 의도적인 작성 (#Announcements composer ai ai-bot)
    지속적인 피드백에서 tobiaseigen은 독킹된 컴포저를 “영구적인 변경”으로 묘사하며, 이는 실수로 제출하는 것을 부추긴다고 지적하고, 봇 상호작용을 위해 더 느리고 신중한 UI를 선호한다고 밝혔습니다 (feedback). 다른 사용자들도 Enter로 전송에 대한 불만을 공유했는데, 특히 다중 줄의 문제 해결 내용을 붙여넣을 때 그렇습니다 (more feedback, impact on longer replies). Shift+Enter와 같은 우회책이 언급되었지만, 사용성 논쟁은 계속되었습니다 (Shift+Enter suggestion, “no forgiveness” concern).

  • 커뮤니티 수정: AI 봇 메시지의 Enter 동작을 되돌리는 테마 컴포넌트 (PR 토론 포함) (#Theme component composer ai ai-bot)
    Enter로 전송에 따른 불편함을 해결하기 위해, Lilly은 AI 봇 메시지 제출(채팅이 아님)에서 “Enter = 줄바꿈”을 복원하고 전송하려면 클릭/탭을 요구하는 테마 컴포넌트를 게시했습니다 (Bot enter button fix for Discourse AI. 이후 독킹된 컴포저가 활성화되어 있거나 없거나 작동하도록 업데이트했습니다 (follow-up fix). 독킹된 컴포저 피드백 스레드에서 Lilly은 관리자 사이트 설정 토글을 추가하기 위한 제안된 PR도 링크했습니다 (theme component announcement in context, PR reference).

  • Enter로 전송은 사이트 전체 관리자 설정이어야 하는가, 사용자별 선호사항이어야 하는가? (#Announcements ai-bot composer)
    Lilly가 관리자 제어 토글을 선호하자 (admin toggle rationale), RGJ는 포럼 간 일관성 부족에 대한 우려를 제기하며 사용자 선호사항이 더 나을 수 있다고 주장했습니다 (preference vs site setting, cross-site inconsistency concern). Lilly은 “적절한” 접근 방식이 봇 메시지보다 더 많은 것을 영향을 미치는 더 넓은 사용자 선호사항일 수 있지만, 이는 훨씬 더 많은 작업이 필요하다고 언급했습니다 (broader preference idea).

  • 문제 해결: 임베딩 차원 불일치로 인한 AI 임베딩 시맨틱 검색 500 오류 (#Self-hosting search ai)
    akanora는 표준 검색은 작동하지만 시맨틱 검색이 500을 반환한다고 보고했습니다 (error report). Falco가 임베딩 모델이 구성되어야 한다고 확인한 후 (model setup check), 로그는 근본 원인을 드러냈습니다: Gemini 임베딩에 대해 기대값 768차원, 실제 3072차원 (log details). 임베딩 구성을 다시 생성하고 차원을 3072로 설정하여 해결되었습니다 (solution), nat은 “테스트 실행”이 자격 증명을 검증하지만 전체 시맨틱 검색 과정은 검증하지 않는다고 강조했습니다 (clarification).

  • 커스텀 사이드바 링크 및 섹션이 이제 번역 가능 (콘텐츠 로컬라이제이션 + dynaloc) (#Feature sidebar ai dynaloc content-localization)
    커스텀 사이드바 콘텐츠를 번역하라는 오랜 요청이 완료로 표시되었으며, nat은 병합된 PR을 가리키며 스크린샷을 공유했습니다 (completion update).

  • AI Translate 진행률 그래프 개선 (성능 + 명확성 + 콘텐츠 유형별 분류) (#Data & reporting translation ai)
    nat은 번역 진행률 그래프에 상당한 UI/UX 업데이트를 제공했는데, 캐시된 타이밍 표시기와 콘텐츠 유형(토픽/게시물 등)별 진행률 분류가 포함되었습니다 (translation graph update). LotusJeff는 업데이트가 “훨씬 더 유용하고 스스로 설명이 된다”고 확인하면서, “Eligible”에 대한 약간의 도움말 텍스트 불일치를 지적했습니다 (feedback).

  • 기능 요청: AI Translate “백필 이후” 설정을 위한 날짜 선택기 (토픽/게시물 불일치 방지) (#Feature ai dynaloc content-localization)
    번역 보고 개선에 기반하여, LotusJeff는 “과거 N일” 대신 날짜별 선택기를 요청하여 토픽/게시물 번역 윈도우가 정렬되도록 했습니다 (request context). nat은 동의하며, UI가 실행 중인 날짜를 표시했으므로 더 명확한 날짜 기반 설정이 필요하다고 언급했습니다 (Request for a date picker…, agreement).

  • 프로바이더 호환성: DeepSeek Open Platform “응답 없음”이 OpenAI API 지원 불완전으로 추적됨 (Support ai)
    중국어 지원 스레드에서, AkarinLiu는 DeepSeek 공식 Open Platform의 OpenAI 호환 API가 기능적으로 불완전하다고 결론 내리고, Xiaomi의 MIMO V.5로 전환하여 문제를 해결했습니다 (diagnosis, solution).


활동

읽어주셔서 감사하며, 다음 주에 다시 뵙겠습니다! :slight_smile:

개요

이번 주 Meta에서 AI 관련 논의는 주로 Discourse AI 출력을 더 신뢰할 수 있고, 제어 가능하며, 덜 예측 불가능하게 만드는 것에 집중되었습니다.

품질 측면에서, sam은 기존 AI 보고 파이프라인 위에 검증 워크플로를 추가하여 보고서 정확도를 높이는 방법에 대해 심층적인 검토를 시작했습니다 (검증을 통한 AI 보고 정확도 향상). 이는 Discourse AI 주기적 요약 보고서, Meta 자체의 일일 요약 피드백, 그리고 Discourse 워크플로의 새로운 자동화 프레임워크 등 이전 작업에 기반을 두고 있습니다.

제어 및 예측 가능성 측면에서는 번역 동작이 주요 주제였습니다: akanora는 터키어 번역이 이상하게 고전적인 문체로 변하고 있다는 보고를 했습니다 (터키어 번역이 현대적 터키어가 아닌 고전/오스만 제국 스타일 언어를 생성함), 그리고 Falco는 이를 지나치게 “변형적인” 번역 프롬프트에서 비롯된 것으로 파악한 후 수정을 배포했습니다 (Falco의 수정 세부 사항). 이 동일한 변경 사항은 번역이 저자의 톤을 "과도하게 개선"한다는 이전 우려(AI "영어 번역"의 언어 수준)와도 연결됩니다.

마지막으로, 운영/관리 관련 우려 사항도 제기되었습니다: AI를 완전히 비활성화하는 방법(AI 비활성화 방법), “잘못된 JSON” 구조화 출력 로그를 어떻게 해석해야 하는지(Discourse AI: 구조화 출력 응답이 올바른 JSON이 아님), 그리고 번역 도구의 더 나은 캐시/사용량 투명성 요청(캐시 삭제 허용). 한편, AI 봇 대화용 도킹된 컴포저 UX 개선(AI 봇 대화용 도킹된 컴포저 소개), 새로 병합된 AI Translate 설정 UX(AI Translate 설정에서 날짜 선택기 요청), 그리고 장기간 이어져 온 챗봇 플러그인 스레드(Discourse Chatbot :robot:)에서의 더 넓은 생태계 진전을 통해 지속적인 제품 정교화도 진행되었습니다.


흥미로운 주제

  • 워크플로를 통한 AI 보고서 검증 ("원샷 요약"을 넘어)
    sam은 Discourse AI 보고가 역사적으로 단순한 파이프라인(컨텍스트 → LLM → 게시물)이었음을 설명하고, 더 높은 정확도를 위해 검증 단계를 추가하기 위해 #workflows를 사용하자고 제안했습니다 (검증을 통한 AI 보고 정확도 향상). 이 논의는 기존 보고 기능(Discourse AI 주기적 요약 보고서)과 보고서 비판 스레드를 통한 공개 반복 루프(일일 요약 피드백)와 명시적으로 연결됩니다.

  • AI 봇 동작을 관리하는 확장 가능한 방법으로서의 “에이전트 스킬”
    sam은 부피가 큰 시스템 프롬프트를 피하고 점진적 정보 공개를 가능하게 하기 위해 재사용 가능한 "스킬"을 주제(topic)로 구조화하는 것을 제안했습니다 (Discourse AI 에이전트에 스킬 부여). mcwumbly는 하나의 큰 프롬프트를 여러 스킬 주제로 나누는 실전 경험을 공유하고, 수동으로 나열하는 대신 자동 스킬 발견에 대해 질문했습니다 (스킬 후속 질문). 이 접근 방식은 ai 커스텀 툴링 패턴(AI 봇 커스텀 툴)에 의존합니다.

  • 터키어 번역이 고전/오스만 제국 시대의 언어로 변형되는 문제 (및 프롬프트 수정)
    akanora는 "터키어로 번역"이 *“Binaenaleyh”*와 *“Velakin”*과 같은 고전적인 표현을 생성한다고 보고했습니다 (보고서). 이것이 편집 메뉴의 번역 도구임을 명확히 한 후(명확화), Falco는 번역 프롬프트를 “본연의 역할에 충실하게” 조정했습니다 (수정 설명), 그리고 akanora는 병합 후 문제가 해결되었음을 확인했습니다 (확인).

  • 언어 수준을 높이는 번역 “개선” 동작 (터키어 수정과 관련됨)
    Moin는 터키어 문제를 수정한 동일한 변경 사항이 의도치 않게 언어와 톤을 "미화"하는 번역 문제도 해결해야 한다고 지적했습니다 (AI "영어 번역"의 언어 수준). 이는 "충실한 번역"이 왜 중요한지, 그리고 프롬프트 문구가 예측 불가능한 출력을 어떻게 만들 수 있는지에 대한 역사적 맥락을 제공합니다.

  • 구조화 출력 로그: “올바른 JSON이 아님” 경고, 파싱 엣지 케이스 및 대응 방안
    lilydjwg는 업데이트 후 로그 노이즈를 지적했습니다: HTTP 응답이 유효해 보임에도 *“구조화 출력 응답이 올바른 JSON이 아님”*이라는 경고가 발생했습니다 (초기 보고서). Falco는 이것이 경고일 뿐이며 경고를 줄이기 위해 INFO 수준으로 낮추는 것을 계획한다고 명확히 했습니다 (응답), 반면 lilydjwg는 이것이 이스케이프 로직의 실제 버그를 나타낸다고 주장하며 스펙에 맞는 이스케이프 경계를 제안했습니다 (후속 질문, 예시).

  • 관리자 정책 질문: AI를 깔끔하게 비활성화하는 것
    JDParker는 회사 정책으로 인해 AI를 비활성화하는 방법에 대해 질문했고(질문), Lilly는 설치된 플러그인을 통한 관리자 경로를 제공했습니다 (해결책). 단순하지만, 더 많은 조직들이 AI 사용 가이드라인을 공식화함에 따라 주목할 만한 사항입니다.

  • 번역 캐시에 대한 더 나은 투명성/제어 요청
    darkpixlz는 더 명확한 번역 페이지 대시보드와 더 짧은 캐시 지속 시간 또는 우회 메커니즘을 요청했습니다 (캐시 삭제 허용). 이는 “운영 인체공학” 범주에 해당하며, 지출을 이해하고 거의 실시간으로 변경 사항을 확인하는 것과 관련됩니다.

  • 도킹된 컴포저 UX 정교화: “전송 단축키” 설정이 코어에 통합됨
    AI 봇 도킹된 컴포저 스레드에서, keegan은 "전송 단축키"를 코어 사용자 설정으로 이동하고 AI 봇 대화에 재사용하는 업데이트를 발표했습니다 (AI 봇 대화용 도킹된 컴포저 소개). 작은 UX 조정이지만, Discourse에서 많은 AI 채팅을 하는 사용자에게 일상적인 사용성에 영향을 미칩니다.

  • AI Translate 설정 UX: 날짜 선택기 요청 병합됨
    nat는 AI Translate 설정에 대한 요청된 날짜 선택기 기능이 병합되었음을 확인했습니다 (AI Translate 설정에서 날짜 선택기 요청), 이는 content-localization 도구의 꾸준한 점진적 개선을 강조합니다.

  • 챗봇 플러그인 진전: 추론 전략, 게이팅, 도구 이름 변경 및 보안 강화
    merefield는 챗봇 생태계의 8월 초 작업을 위한 통합 PR 요약을 게시했습니다. 여기에는 새로운 추론 전략, 의미론적 차단된 질문 게이트, 통합 작업, "Function"에서 "Tool"로 이름 변경, 그리고 더 안전한 계산기 평가기로의 전환이 포함됩니다 (Discourse Chatbot :robot:, 그리고 다음 게시물의 후속 스크린샷/컨텍스트).


활동


읽어주셔서 감사합니다, 그리고 다음 주에 다시 뵙겠습니다! :slight_smile:

주간 AI 요약: meta.discourse.org

개요

이번 주 Discourse AI 생태계에는 7개의 새로운 주제에 걸쳐 49개의 새 게시물이 올라오는 등 매우 다사다난한 한 주였습니다. 논의의 중심은 AI 플러그인과 그 확장되는 기능에 크게 기울어 있었습니다. 이번 주 논의는 세 가지 주요 테마로 수렴되었습니다: Gemini Interactions API의 출시와 코드 실행, Google Maps와 같은 네이티브 도구를 갖춘 AI 기능 확장; 게이미피케이션 자동화부터 범위가 제한된 포럼 어시스턴트에 이르기까지 특정 커뮤니티 사용 사례를 위한 AI 에이전트 조정 및 제약; 그리고 구조화된 출력 JSON 검증, AI 요약 사용자 귀속, 번역된 콘텐츠의 현지화를 포함한 품질 및 신뢰성 문제 수정입니다.

더 명확한 가드레일과 문서화가 필요하다는 주제가 반복적으로 등장했습니다. 신참과 베테랑을 포함한 여러 사용자가 비지원 언어 추가부터 언어 선택기, 임의의 쿼리에 대한 봇의 LLM 크레딧 소비 제한, 에이전트에서의 모델 선택 이해에 이르기까지 자신의 필요에 맞게 Discourse AI를 구성하는 방법에 대해 질문했습니다. 팀은 수정 사항과 조언, 새로운 PR 및 Workflows 플러그인이 기존 Automation 기반 오케스트레이션을 대체할 수 있는 방법에 대한 명확한 설명을 통해 응답했습니다.

흥미로운 주제

  • Discourse AI에 Gemini Interactions API 지원 도입: sam은 Discourse AI가 이제 Google의 새로운 Gemini Interactions API를 지원한다고 발표했으며, 향후 모든 Gemini 추론에 이를 사용할 것을 권장했습니다. 기존 generateContent API는 사용 가능하지만 "Google Gemini (Legacy API)"로 다시 라벨링되었습니다. 새로운 제공자는 기존 Search 및 Fetch 도구 외에도 도구 호출 스트리밍, 코드 실행, Google Maps 도구라는 세 가지 네이티브 기능을 추가합니다. 주목할 점은 Interactions API가 2.5 Flash 모델에서 "thinking"을 비활성화하는 것을 더 이상 허용하지 않는다는 것이며, sam은 이것이 추론 모델에 부적절하다고 지적했습니다.

  • 언어 선택기에 비지원 언어 추가: Karthik_K1은 AI가 거의 모든 언어 간 번역이 가능하다는 점을 고려할 때, 콘텐츠 현지화 언어 선택기에 인도 언어(힌디어, 텔루구어, 타밀어, 칸나다어, 말라얄람어)를 추가하는 방법에 대해 질문했습니다. nat은 이 선택기가 사용자의 전체 Discourse 로케일(인터페이스 및 콘텐츠)을 변경하며, 적절히 복수형 처리 및 폴백이 있는 Discourse의 i18n 시스템이 지원하는 로케일로 제한된다고 설명했습니다. 그는 추가 로케일을 등록하는 플러그인 또는 Crowdin을 통한 번역 기여를 제안했으며, Moin은 단기 솔루션으로 플러그인을 권장했습니다.

  • Workflows를 통한 게이미피케이션 포인트 자동화: satonotdead은 “퀘스트” 및 작업을 위해 수동으로 포인트를 부여하는 대신 게이미피케이션 포인트를 자동화하는 방법을 질문했습니다. awesomerobot은 Workflows 플러그인에 “칭찬(cheers) 수여” 작업을 추가하여 게시물 확인 → 채팅 승인 대기 → 포인트 수여 파이프라인을 활성화하는 것을 제안했습니다. Falco는 이 기능을 구현한 PR에 링크를 걸었고, Andrew_Rowe는 커스텀 폼과 Custom Wizard 플러그인을 대안으로 제시했습니다.

  • AI 에이전트를 포럼 관련 질문으로 제한: Karthik_K1은 "우버의 소유자는 누구인가?"와 같은 관련 없는 질문에 대한 답변으로 LLM 크레딧을 소모하는 것을 막기 위해 AI 에이전트를 제한하는 방법을 질문했습니다. NateDhaliwal은 Forum Helper 또는 Forum Researcher 에이전트를 제안했지만, Karthik은 이들도 범위 밖의 쿼리에 답변하는 것을 확인했습니다. Falco는 “Creative” 에이전트에는 시스템 프롬프트가 없으며, 답변 시점을 지정하는 시스템 프롬프트를 갖춘 새로운 에이전트를 제작하는 것을 권장했습니다. 이는 Ed_S가 지적한 대로 ask.discourse.com에서 사용되는 동일한 접근 방식입니다.

  • 내장 챗봇 또는 대화형 어시스턴트?: Soumya_Ranjan_Mishra는 Discobot을 넘어선 내장 챗봇 기능에 대해 질문했습니다. RGJ는 AI Bot 문서와 @merefield의 Chatbot 플러그인을 가리켰습니다. awesomerobot은 Discourse AI가 요청된 모든 기능을 기본적으로 지원한다고 언급했으며, 이는 채팅 또는 PM을 통한 답변, 자동 카테고리 분류, 자동 태그 지정을 포함하며, Discourse AI 문서를 통해 ask.discourse.com과 같은 전용 페이지를 구동할 수 있습니다.

  • AI 요약이 사용자를 “User1”, "User2"로 인용: sk-or-v1-contents는 AI 주제 요약(CDCK/MoM에서 사용)이 실제 핸들 대신 “User1”, “User3” 등으로 게시물을 인용하고, 원본 게시물에 없는 내용을 환각(hallucinate)하는 버그 보고서를 제출했습니다. Falco는 이것이 PR #42445로 처리되었음을 확인하고, 보고된 주제에 대한 요약이 이미 더 좋아졌다고 언급했습니다.

  • 구조화된 출력 응답의 JSON 검증 실패: lilydjwg는 로컬 llama-server(Qwen3-4B GGUF)에서 구조화된 출력 응답이 소스에서 스키마 유효함에도 불구하고 잘못된 JSON으로 거부된다고 보고했습니다. sam은 처음에는 더 유능한 모델을 제안했지만, lilydjwg가 문제가 Discourse에 의해 도입된 공백/줄바꿈 이스케이핑임을 입증한 후, sam은 이를 정당한 버그로 인정하고 수정 사항으로 PR #42339를 출시했습니다.

  • 도킹된 컴포저 설정의 가시성: 진행 중인 AI 봇 대화를 위한 도킹된 컴포저 발표에서, Moin은 /my/preferences/interface에 수동으로 입력하지 않고 ask.discourse.com에서 채팅 스타일 컴포저 설정이 어디에서 전환되는지 질문했습니다. keegan은 이것이 Fonts & Appearance 아래에 있음을 보여주었고, Moin은 “외관이 문제가 아니기 때문에” 직관적이지 않다고 느꼈습니다. martin은 명확성을 위해 섹션 이름을 "Interface settings"로 변경하는 것을 제안했습니다.

  • 번역된 카테고리 설명이 자동 업데이트되지 않음: Moin은 번역된 카테고리 설명 자동 업데이트에서 #contribute:ux 및 #contribute:feature 카테고리의 AI 번역된 설명이 영어 편집 후에도 독일어 사용자에게는 오래된 상태로 남아있다고 지적했습니다. nat은 PR #42407에서 수정 사항이 적용되었음을 확인했습니다.

  • AI 에이전트 채팅에서의 모델 혼동: satonotdead는 채팅 중 예상과 다른 모델을 보며 LLM 에이전트에서 모델을 업데이트하는 방법을 질문했습니다. Falco는 AI 채팅의 “정보” 아이콘이 기본 제목 설정 요청을 표시하여 혼동을 유발한다고 설명하고, 이 UX를 개선하기 위해 PR #42326을 제출했습니다. 원래의 혼동은 버그가 아닌 오해였습니다.

  • 콘텐츠 현지화 문서 리프레시: nat은 Content Localization - Manual and Automatic with Discourse AI 문서에 대한 일괄 업데이트를 게시했습니다. 여기에는 사용자가 어디서 오는지에 대한 새로운 쿼리, 다국어 설정, 커스텀 사이드바 링크 번역, 개선된 AI 번역 진행률 그래프, 업데이트된 날짜 선택기 설정 문서가 포함되어 있습니다.

활동


읽어주셔서 감사합니다. 다음 주에 또 뵙겠습니다! :slight_smile:

ensures theyContinue the final to my raw that a to The. This text no.

The that helped. The.

Need in to.

This Ede. A [this The. This.

:neutral_face: cannot to.

The to The.

A 그 [그것 [이것 [그것들. A. The [The [an the [Although a [Thus [This The. The. That’s The [This This [This This This This This This This This This This The The The This This This This The The The This This This This This The The The The The The The This This This This This This This This This This This The This This The The This This This The The The The The This This This The This The This This The This This The The The The This This This This This This This The This The The The The The The The The The The The The The The The The The This This This This The The The The The The The The The The The The The The The The The The The The The This This The The The The The The The The The The The The The The The The The The The The The The The The The The The The This This The The The The This This This The This The The The This This The This This This This This This This The The The The This The This This The This This This This This This This This The The The The The This This This This This This This The The This This This This The The This This This This This This This This This This This This This This This This This This The This The This This This This This This This This This This This This This The This The This This This This The The This This This This This This This The The The The The The The The The The The The The The The The The The This This This This This This This This This This This This This This This This This This This The The The This This This The The This The The The This This This This This This This This The This This This The This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This## 개요

이번 주 디스코러스 AI(Discourse AI) 세계에서는 공지사항, 버그 수정, 그리고 커뮤니티 피드백이 혼재되어 있었습니다. 헤드라인은 sam이 **디스코러스 AI 서브에이전트(subagents)**를 도입한 것이었으며, 이는 에이전트를 더 작고 전문화된 조각으로 분해할 수 있게 하는 중요한 새로운 기능입니다. 또한 텍스트 전용 모델(예: DeepSeek v4 Flash)이 비전 기능을 활용할 수 있도록 하는 **위임된 비전(delegated vision)**도 출시되었습니다.

지원 측면에서는, rinion이 AI 기능이 비활성화된 상태에서도 **디스코러스 헬퍼 봇(Discourse Helper Bot)**이 개인 채팅 채널을 자동으로 여는 지속적이고 귀찮은 문제를 보고했으며, gabriel이 몇 차례의 논의를 거쳐 결국 이를 수정했습니다. 커뮤니티 멤버 satonotdead와 Moin는 각각 교정(Proofread) 헬퍼가 줄바꿈을 제거하고 인용문을 깨뜨리는 문제를 지적했으며, Falco가 빠르게 수정을 적용했습니다. 또한 AI 에이전트를 포럼 특정 주제에만 제한하는 것에 대한 논의가 이루어졌으며, Ed_S와 Karthik_K1는 프롬프트 기반 가드레일(prompt-based guardrails)의 한계에 대한 통찰을 공유했습니다. 마지막으로, AI 제목 제안 기능이 컴포저 헬퍼(composer helper)로 이동하면서 커뮤니티에서 유용한 UX 피드백이 나왔으며, 이는 발견 가능성(discovability)에서의 마찰을 강조했습니다.

흥미로운 주제

  • 디스코러스 AI 서브에이전트 — sam은 디스코러스 AI에 서브에이전트 지원이 도입되었음을 공지했습니다. 서브에이전트는 메인 에이전트에서 전문 에이전트로 작업을 위임할 수 있게 하여, 에이전트를 더 합리적인 조각으로 분해하고, 언어 모델을 혼합 및 매칭하며, 컨텍스트 팽창을 방지하고, 동시성 및 속도를 높이는 데 도움이 됩니다. 예로는 웹 리서처 서브에이전트와 팩트 검증 서브에이전트가 있습니다. AI 에이전트에 대한 자세한 내용은 AI 봇 에이전트 주제에서 확인할 수 있습니다.

  • 디스코러스 AI에서 텍스트 전용 모델을 위한 위임된 비전 — sam은 또한 위임된 비전 지원의 출시를 공유했습니다. 이를 통해 DeepSeek v4 Flash와 같은 텍스트 전용 모델이 Qwen이나 Gemma와 같은 비전 지원 모델로 비전을 위임하여 디스코러스 AI의 전체 기능 세트를 사용할 수 있습니다. LLM 설정 아래에 새로운 옵션이 추가되었으며, 자세한 내용은 LLM 설정 페이지에서 찾을 수 있습니다.

  • AI 기능이 비활성화되어 있는데도 AI 봇이 계속 개인 채팅 채널에 나를 자동으로 추가하나요? — rinion은 AI 기능이 비활성화되어 있음에도 불구하고 모든 페이지 로드 시 디스코러스 헬퍼 봇이 열린 DM 채팅으로 지속적으로 나타나는 문제를 보고했습니다. gabriel은 문제를 인정하고 이는 예상되는 경험이 아님을 언급한 후, 수정을 구현했습니다. 몇 차례의 문제 해결과 gabriel의 수동 채널 삭제를 통해 rinion의 문제는 해결되었습니다. Moin은 엔터프라이즈 플랜이 아닌 경우 포럼 배포가 어떻게 작동하는지 설명했습니다.

  • 메타(Meta)에서 교정 헬퍼가 줄을 제거함 — satonotdead은 교정 헬퍼가 모든 줄바꿈을 제거하여 내용을 큰 단락으로 바꾸고 심지어 인용문과 이미지를 깨뜨린다고 보고했습니다. Moin은 예시를 들어 동일한 동작을 확인했습니다. Falco는 수정이 곧 나올 것이라고 빠르게 응답했으며, 해당 주제는 해결된 것으로 표시되었습니다.

  • AI 제목 제안이 컴포저 헬퍼로 이동 — chapoi은 AI 제목 제안이 다른 헬퍼들과 함께 AI 컴포저 메뉴로 이동했음을 공지했습니다. jaroslav.kovar은 카테고리 및 태그의 AI 제안이 이동한 이후 아무도 이를 사용하고 있지 않으며, 새로운 상호작용을 사용자 친화적이지 않다고 설명하며 피드백을 제공했습니다. satonotdead도 기능이 아닌 미학이 우선시되었을 수 있다고 언급하며, 변경 사항을 되돌리거나 옵션을 추가하는 것이 가능한지 물었습니다. Jagster도 일반 사용자가 AI 제안을 어디서 찾을 수 있는지 어떻게 알 수 있는지 물었습니다.

  • AI 에이전트를 내 포럼과 관련된 질문에만 답변하도록 제한하는 방법은? — Karthik_K1은 프롬프트가 항상 신뢰할 수 있는 것은 아니며, ask.discourse.com의 에이전트를 속여 주제 밖 질문에 답변하게 할 수 있었다고 언급했습니다. Ed_S은 100% 강제 실행은 이점보다 더 많은 불편을 초래할 것이라고 관찰했으며, Falco는 디스코러스 AI가 에이전트별로 LLM을 선택할 수 있으므로, 2단계 평가를 추가하는 **워크플로(Workflows)**를 사용하거나 원하는 동작으로 학습된 파인튜닝된 모델을 배포하는 것과 같은 실용적인 접근법을 제안했습니다.

  • 내부 OpenAI API로 디스코러스 AI 설정하기 — Soumya_Ranjan_Mishra은 엔터프라이즈/내부 OpenAI 호환 API 엔드포인트로 디스코러스 AI를 설정하는 방법에 대해 질문했습니다. Falco은 제공자를 openai로 선택하고 URL을 구성하도록 조언했지만, Soumya_Ranjan_Mishra은 오류를 경험했습니다. kddkd는 모델 서비스 URL과 API 키를 입력하는 것을 포함하여 중국어로 상세한 구성 단계를 제공했으며, URL 형식이 문제일 수 있다고 언급했습니다.

  • Ask Discourse 피드백 — twofoursixeight은 “All Questions”, “topics”, “my posts”, “categories”, "filter"와 같은 링크가 Ask Discourse 사이트에서 대부분의 멤버들에게는 빈 페이지로 이동하므로 무용하다고 피드백을 제공했습니다. HAWK은 사이트가 기본적으로 AI 봇으로 설정되어 있는데 어떻게 그 페이지들에 접근했는지 물었고, twofoursixeight은화면 녹화를 통해 사이드바가 항상 AI 봇으로 기본 설정되지 않음을, 특히 사용자 설정에서 그렇지 않음을 시연했습니다.

  • Discourse AI 에이전트 스킬 부여 — #Extras 카테고리에서 satonotdead는 Discourse AI 에이전트 스킬 개발에 초보자가 접근할 수 있는 경로가 있는지, 자신의 기술적 한계를 언급하며 질문했습니다. sam는 그 복잡성을 인정하고, AI 팀이 “스킬” 사용 사례를 위한 새로운 최상위 개념, 아마도 카테고리, 태그 또는 원격 데이터 컬렉션을 통한 "그라운딩 콘텐츠"를 도입하는 것을 고려하고 있다고 언급했습니다.

  • 캐시 지우기 허용 — darkpixlz는 캐시를 지우거나 진행 상황에 대한 더 실시간적인 업데이트를 받을 수 있는 기능을 요청했습니다. awesomerobot는 캐시 조회가 모든 백필 날짜까지의 게시물을 언어와 콘텐츠 유형으로 곱한 만큼 비용이 많이 든다고 설명하고, 버튼이 있더라도 속도 제한이 필요하다고 지적했습니다. darkpixlz는 처리가 진행 중임을 확인받고 싶을 뿐이며, 더 실시간적인 업데이트를 위해 큐를 로컬에 저장하는 것을 제안했습니다.

활동

읽어주셔서 감사하며, 다음 주에 다시 뵙겠습니다! :slight_smile:

3개의 좋아요

개요

2026년 8월 17일부터 8월 24일까지, meta.discourse.org의 ai 영역에서는 29개의 새 게시물과 4개의 새 주제가 생성되었습니다. 이번 주기의 하이라이트는 sam이 발표한 새로운 관리자 전용 진단 도구인 상세 관리자 AI 로그의 출시였습니다. Ask Discourse 피드백에서는 일시적인 업그레이드 관련 회귀 문제가 보고되었다가 해결되었으며, 이를 계기로 숨겨진 링크 설정에 대한 유용한 부수 논의가 이루어졌습니다. 내부 OpenAI API를 사용하여 Discourse AI 설정하기에서는 환경 변수 및 컨텍스트 윈도우 팁을 공유하며 트러블슈팅이 계속되었습니다. satonotdead는 채팅 제목, 그룹별 모델 선택, 에이전트 채팅 모니터링과 관련된 여러 새로운 기능 요청을 게시했습니다. 마지막으로, sam은 이전 ai 버그 보고서 일부를 분류(triage)하여 몇 가지는 닫고 소스에서 수정이 확인되었음을 확인했습니다.

흥미로운 주제

활동

지난 7일간 커뮤니티의 기여 내용은 다음과 같습니다:

읽어주셔서 감사드리며, 다음 주에 다시 뵙겠습니다! :slight_smile:

개요

2026년 8월 24일~31일 주간의 meta.discourse.org는 주요 ai 발표, AI 요약 관련 버그 보고서의 연이은 보고, 그리고 눈에 띄는 플러그인 개발 활동으로 가득했습니다. sam는 #Announcements에서 Discourse MCP의 다음 버전을 공개하며 일주일의 시작을 알렸는데, 이는 25개 도구에서 131개 도구로 도약한 것으로, 새로운 “toolsets” 개념을 도입한 중요한 발전입니다. 이와 함께 여러 사용자가 AI 요약 플러그인 관련 문제를 제기했습니다. darkpixlz는 토픽 요약이 중간에 잘리는 현상을 발견했고, lilydjwg는 LLM으로 전송되는 단어 안에 추가 공백이 삽입되는 이상한 버그를 파헤쳐 FoldContent 클래스의 truncate 호출까지 추적했습니다. satonotdead는 두 가지 별개의 우려를 제기했는데, Horizon 테마에 AI 요약이 없는 문제와 모바일에서 전체 화면 채팅과 챗봇 사이의 네비게이션 막다른 길 문제였습니다. 개발 측면에서는 martin가 Discourse AI가 “everyone” 그룹을 무시하는 오랜 버그를 수정하는 PR을 제출했고, merefield는 Anthropic, Google Gemini, xAI 지원을 추가한 대규모 Discourse Chatbot 3.0.0 확장을 게시했습니다. 전반적으로 빠른 반복 개발과 커뮤니티의 테스트, 버그 헌팅, ai 동작에 대한 명확한 설명에 대한 활발한 참여가 있었던 한 주였습니다.

흥미로운 토픽

  • Discourse MCP의 다음 버전 — sam는 Discourse MCP 서버의 0.3 버전을 발표했습니다. 이는 0.2.9의 25개 도구에서 131개 도구로 대폭 업그레이드된 것입니다. 이번 릴리스는 새로운 “toolsets” 개념을 도입합니다. 기본적으로 제한된 도구 세트만 노출되지만, toolset=all을 지정하면 워크플로 생성 및 관리부터 AI 설정, 분석, 테마 생성까지 모든 것이 잠금 해제됩니다. fuse는 진정한 학습의 정신으로 Discourse MCP 서버의 사용 사례가 무엇인지 질문했고, Falco는 예시를 위해 원본 발표 영상을 가리켰습니다.

  • 토픽 요약이 중간에 잘림 — darkpixlz는 자신의 테마에 대해 자동 생성된 토픽 요약이 문장 중간에서 잘려나가는 것을 발견했습니다. LLM 문제인지 플러그인 문제인지 확신이 없었던 그는, 사용자가 요약을 플래그하거나 재생성을 요청할 수 있다면 좋겠다고 제안했습니다. Falco는 즉시 개입하여 요약을 재생성했습니다.

  • 토픽 요약이 단어 또는 링크 안에 추가 공백이 포함된 메시지로 LLM에 전송됨 — lilydjwg는 자신의 사이트에서 AI 요약을 활성화한 후 기이한 버그를 보고했습니다. 출력에는 e nter, Ct rl, host s와 같이 단어 사이에 공백이 삽입된 [keyd](https://man.arch linux.org/...) 같은 잘못된 링크가 포함되어 있었습니다. AI 로그를 확인한 결과, 요청 전반에 걸쳐 추가 공백이 발견되었으며, 심지어 한자 사이에도 공백이 삽입되어 있었습니다. 후속 게시물에서 그는 이 문제를 자가 진단하여 FoldContent 클래스의 truncate 호출 때문이라고 결론지었습니다.

  • Horizon에 AI 요약이 없는 이유? — satonotdead는 meta와 자신의 셀프호스팅 인스턴스 모두에서 Horizon 테마가 토픽 목록에 AI 요약을 표시하지 않는 이유를 궁금해했습니다. chapoi는 이것이 기대되는 동작이라고 설명하며, AI 요약은 아웃렛(outlets)을 통해 작동하는데 Horizon은 의도적으로 어떤 아웃렛도 사용하지 않는 독창적인 디자인을 가지고 있다고 덧붙였습니다.

  • Discourse AI가 “everyone” 그룹을 준수하지 않음 — 이 오랜 #Bug는 martin가 문제를 수정하는 작은 PR을 게시하면서 다시 부각되었습니다. 이 PR은 return false if (SiteSetting.ai_bot_allowed_groups_map & post.user.group_ids).blank?라는 버그 있는 검사도 함께 다루며, AI 봇의 그룹 권한이 문서화된 대로 동작하도록 만드는 데 있어 환영할 만한 한 걸음이 되었습니다.

  • 챗봇 + 채팅에서 되돌릴 수 없음 — satonotdead는 #Bug에서 네비게이션 막다른 길을 보고했습니다. 전체 화면 채팅에 들어간 후 챗봇으로 이동하거나(또는 그 반대) 할 때, 두 개의 뒤로 가기 버튼이 제자리에서 회전하며 사용자가 포럼으로 돌아갈 수 없는 상태로 갇히게 됩니다. awesomerobot는 정확한 재현 단계를 요청했고, satonotdead는 모바일 네비게이션에 F Nav 테마 컴포넌트를 사용한다고 밝히며 시퀀스를 명확히 했지만, 버그는 URL을 통해 접근할 수 있어야 한다고 언급했습니다.

  • Discourse Chatbot :robot: — merefield는 #Plugin에서 Discourse Chatbot 플러그인의 대규모 확장을 발표했습니다. 기존 OpenAI 통합과 함께 Anthropic, Google Gemini, xAI에 대한 1급 지원을 추가하는 PR입니다. 3.0.0 버전은 프로바이더 인식 크리덴셜과 모델 선택, LLM 응답, 임베딩, 비전, 이미지 생성을 위한 독립적 프로바이더를 도입하며, 커스텀 모델과 URL(Azure, Ollama, 프록시)에 대한 지원도 유지합니다. 새로운 프로바이더 지원이 다소 실험적 단계이므로 피드백을 권장했습니다.

  • Discourse AI - 스팸 감지 — 이 #Site Management 스레드에서 The_Chromer는 사용자의 사용자 이름으로 스팸 사용자 여부를 판별할 수 있는지 질문했습니다. 이는 moderation 및 Discourse AI를 사용하여 spam 감지를 효과적으로 활용하는 방법에 대한 커뮤니티의 지속적인 논의를 이어가는 것입니다.

활동

읽어주셔서 감사드리며, 다음 주에 다시 뵙겠습니다! :slight_smile:

주간 AI 활동 요약: meta.discourse.org

2026년 8월 31일 ~ 9월 7일 주

개요

meta.discourse.org에서 AI 관련 활동이 활발했던 한 주였습니다. 두 가지 주요 발표, 2026.8.0 릴리스 이후 이어진 Gemini 관련 버그 보고, 그리고 커뮤니티 멤버들의 다양한 기능 요청이 그 배경이 되었습니다.

가장 큰 이슈는 nat의 Ask AI 발표였습니다. Ask AI는 인덱스 검색과 병행하여 작동하는 새로운 자연어 검색 경험으로, 후속 질문을 지원하며 좋은 결과가 없을 경우 사용자에게 주제를 생성하도록 유도합니다. 이 기능은 곧바로 토큰 비용에 대한 질문과 EricGT의 프롬프트 입력 크기, 정렬 가능한 결과 열, AI Bot 폴백의 발견 가능성에 대한 상세한 UX 피드백을 불러일으켰습니다. 잠시 후, sam은 모든 사이트에 적용될 기본 llms.txt를 Discourse가 제공할 것이라고 발표했으며, 이는 AI 크롤러를 위한 보수적이고 토큰 효율적인 지시사항을 포함합니다. 또한 rishabh은 업그레이드된 Discourse Admin Assistant를 소개했는데, 이제 승인/취소 플로우를 통해 채팅에서 실제 관리 및 설정 작업을 수행할 수 있습니다.

트러블슈팅 측면에서는, RBoy이 2026.8.0으로 업데이트한 후 AI 검색과 Disco Bot이 Gemini에서 오류를 일으킨다고 보고했고, 관련 Gemini Flash Lite 사고(thinking) 회귀 문제도 접수했습니다. 이는 빠르게 변화하는 LLM 모델 ID와 레거시 API 지원의 유지보수 부담에 대한 더 넓은 논의를 촉발시켰습니다. Karthik_K1은 두 가지 셀프호스팅 문제를 해결했습니다: 빈 Ask AI 응답은 테마 관련 렌더링 버그로 밝혀졌고, Gemini API 키 오류는 Lilly와 satonotdead의 도움으로 LiteLLM 우회 방법을 통해 해결되었습니다.

기존 기능 토론들도 다시 활발해졌으며, AI 검색 원클릭 실험과 Discourse AI에 도입되는 대화형 AI 검색이 포함됩니다. 또한 satonotdead은 커스텀 헬퍼 프롬프트와 더 풍부한 AI 대화 관리에 대한 두 가지 새로운 요청을 접수했습니다. 전반적으로 이번 주에는 플랫폼의 가속화되는 AI 투자와 LLM 제공업체의 변경 사항에 발맞추기 위해 셀프호스터들이 겪는 성장통이 모두 부각되었습니다.

흥미로운 주제

  • 커뮤니티 검색을 위한 Ask AI 출시. nat은 #announcements에서 Ask AI를 발표하며, 자연어 쿼리, 후속 질문, 그리고 결과가 없을 때의 “주제 생성” CTA를 어떻게 지원하는지 설명했습니다. jaroslav.kovar은 추가 토큰 비용에 대해 물었고, nat은 AI 사용 대시보드를 가리켰습니다. satonotdead은 결과 상자를 제어하기 위한 AI ask AI related count 관리 설정을 발견했으며, nat은 이것이 목표가 아닌 최댓값임을 확인했습니다. EricGT는 대형 호스팅 포럼에서 광범위한 피드백을 공유했습니다: 그는 더 큰 프롬프트 입력 필드와 정렬 가능한 결과 열을 요청하고, “AI Bot에서 계속” 링크와 같은 요소를 통해 AI Bot으로의 전환을 더 쉽게 발견할 수 있도록 제안하며, 혼란을 피하기 위해 툴팁 또는 “Ask AI” 버튼 라벨을 제안했습니다. nat는 매우 긴 프롬프트에는 전체 페이지 AI Bot 대화가 더 적합하며, 정렬 개선은 "고려해볼 수 있다"고 응답했습니다. 이후, EricGT는 주제 내에서 밀접하게 관련된 GitHub 이슈를 찾기 위해 Ask AI를 사용해 보았지만, Moin은 “이 주제” 범위가 클래식 검색 동작이며 Ask AI가 아님을 명확히 했습니다.

  • 모든 Discourse 사이트에 자동 llms.txt 도입 예정. sam은 모든 사이트에 적용될 기본 llms.txt를 Discourse가 제공할 것이라고 발표했습니다. 이 파일에는 AI 에이전트를 위한 지시사항이 포함되어 있습니다: 사람들을 사칭하지 마세요, 계정을 자동으로 생성하지 마세요, robots.txt와 속도 제한을 존중하세요, 그리고 사용 가능한 경우 Discourse MCP 서버를 우선하세요. Ed_S은 셀프호스터가 이를 커스터마이징하거나 제외할 수 있는지 물었고, sam은 AI를 완전히 차단하려는 사이트에는 “Robots not welcome” 파일을 권장하며, 콘텐츠가 완전히 커스터마이징 가능하다고 강조했습니다. Ed_S는 About 페이지 링크 대신 포럼 목적에 대한 간결한 일반 텍스트 요약을 제안했으며, sam은 템플릿의 토큰 효율성을 옹호하고 대부분의 LLM이 이미 Discourse의 오래된 "이미지"를 알고 있으므로 이 파일이 Discourse MCP 서버와 같은 새로운 기능에 대해 최신 정보를 얻는 데 도움이 된다고 지적했습니다. jaroslav.kovar은 파일을 검사하고 수정하는 방법을 물었습니다.

  • Discourse Admin Assistant 소개. rishabh은 호스팅 사이트를 위한 리브랜딩 및 업그레이드된 Discourse Admin Assistant(구 Discourse Helper Bot)를 발표했습니다. 이제 Meta를 검색하여 질문에 답하고, 승인/취소 확인을 통해 사이트 설정을 변경하며, 관리 작업(사용자 침묵, 주제 잠금, 큐 검토)을 돕고, 사이트의 호스팅 플랜과 청구에 대한 질문에 답할 수 있습니다 — 모두 채팅에서 직접 가능합니다.

  • 2026.8.0 이후 Gemini 오류 및 레거시 API 우려. RBoy은 업그레이드 후 Disco Bot / AI 검색이 Gemini Flash Latest (3.7)에서 오류를 일으킨다고 보고했으며, 로그에는 Gemini API에서 Role 'function' is not supported가 표시되었습니다. sam은 비레거시 상호작용 엔드포인트로 전환할 것을 제안했고, RBoy는 해당 엔드포인트가 -latest 모델 별명을 받지 않는다는 것을 발견했으며, 이는 Gemini가 버전을 빠르게 폐기함에 따라 상당한 관리 오버헤드를 초래한다고 주장했습니다. 관련 스레드에서 RBoy은 사고(thinking) 토큰 예산이 하드코딩되지 않으면 400 오류가 발생하는 Gemini Flash Lite 사고(thinking) 회귀 문제를 보고했으며, 업그레이드 후 Pro 모델은 "완전히 깨졌다"고 지적했습니다. sam은 다시 한번 더 새로운 gemini-3.5-flash-lite 엔드포인트를 가리킨 반면, RBoy는 필요한 변경의 주기에 대해 반박하며, Discourse 관리자가 LLM의 변화에 발맞추기 어렵고 TCO(총 소유 비용)가 최신 모델을 항상 사용하는 것보다 중요하다고 주장했습니다.

  • 빈 Ask AI 응답, 테마 렌더링으로 인한 것으로 확인. Karthik_K1은 기본 LLM을 전환한 후 Ask AI가 응답 제목은 생성했지만 빈 응답 본문이 표시된다고 보고했습니다. nat은 처음에는 15.5초의 응답이 20초 마감 시간을 초과하여 타임아웃된 것으로 의심했지만, Karthik_K1의 테스트 결과 문제는 데스크톱에서만, 두 브라우저에서 발생했습니다. nat은 안전 모드, 전체 페이지 Ask AI, 콘솔/네트워크 디버깅을 제안했으며, Karthik_K1은 결국 테마가 원인이었음을 발견했습니다 — Mint 테마는 스크롤해야만 답변이 표시되었고, Foundation 테마는 정상적으로 작동했습니다.

  • Discourse에서 Gemini API 키 오류 해결. Karthik_K1은 기존 가이드를 따랐음에도 Google Cloud Vertex AI를 Discourse AI에 연결할 때 인증 오류에 직면했습니다. Lilly는 작동하는 Gemini API 구성(Vertex 대신 Gemini API 서비스를 사용)를 안내했으며, Karthik은 이것이 자신의 GCP 크레딧을 소모하지 않을 것이라고 언급했습니다. satonotdead는 토큰 로테이션을 갖춘 LiteLLM 프록시 접근법을 권장했으며, 이는 잘 작동했습니다. Karthik_K1은 더 가벼운 모델로 전환하면 지연 시간이 제거된다고 확인하고 주제를 해결됨으로 닫았습니다.

  • 2026.8.0 이후 AI 검색 버튼 누락. RBoy는 2024년에 처음 게시된 새로운 실험: 원클릭으로 AI 검색 활성화! 주제를 다시 활성화하여, 2026.8.0에서 AI 결과 버튼이 기본적으로 검색 결과에 더 이상 표시되지 않다고 보고했습니다 — 고급 검색 필터를 수동으로 열어야만 표시됩니다. NateDhaliwal는 이것이 Discourse AI AI Search 가이드의 기능인지 물었고, 유사하지만 다른 후속 기능인 Ask AI를 가리켰습니다.

  • 대화형 AI 검색 설정 명확화. 장기적인 Discourse AI에 도입되는 대화형 AI 검색 #feature 주제에서, satonotdead은 이전에는 그의 에이전트가 “전혀 표시되지 않았으며” 사용자 설정 토글도 표시되지 않았다고 명확히 했습니다. 그는 이 기능이 Discover의 에이전트 구성과 기본 베이스 모델 모두에 의존한다고 판단했으며, "이미 Ask AI에서 해결되었다"고 확인했습니다.

  • 커스텀 헬퍼 프롬프트 요청. satonotdead은 Discourse Helper에 커스텀 헬퍼 프롬프트를 추가하는 방법을 묻는 Support 스레드를 열었습니다. 그는 붙여넣은 링크로부터 게시물을 개발할 수 있는 AI Bot을 통한 작동 에이전트를 설명했지만, PM을 주제로 변환하고 태그를 추가하는 워크플로우는 번거롭다고 지적했습니다 — 그는 매번 초기 프롬프트를 다시 입력하지 않고 헬퍼를 통해 이러한 기능을 노출받고 싶어 합니다.

  • AI 대화 관리 기능 요청. satonotdead은 AI 대화에 그룹 추가, 이름 변경 및 삭제에 대한 #feature 요청을 접수했습니다. 이는 AI 대화 패널(ask.discourse.com에서 사용 중인 것과 동일한)에서 누락된 표준 채팅 UX 기능(채팅 이름 변경, 에이전트/기능별 그룹 생성 및 조직화, 각 대화 내부가 아닌 사이드바의 세 점 메뉴에서 채팅 삭제)을 다루고 있습니다. 그는 이것이 성장하는 채팅 목록에서 정보 검색을 개선할 것이라고 언급했습니다.

활동

읽어주셔서 감사합니다, 다음 주에 다시 뵙겠습니다! :slight_smile:

meta.discourse.org의 AI 활동 주간 요약

개요

2026년 9월 7일부터 14일까지 meta.discourse.org의 ai 채널에서는 74개의 새 게시글과 9개의 새 주제가 생성되는 매우 바쁜 한 주였습니다. 이번 주의 하이라이트는 sam님의 Discourse MCP를 활용해 빠르게 테마 만들기 튜토리얼이었습니다. 이 글에서는 Discourse MCP, Discourse 트라이얼, OpenAI Codex를 활용하여 완전히 커스텀된 테마를 생성하는 방법을 보여주었습니다. 해당 스레드는 **AI 에이전트 하네스(AI agent harnesses)**에 대한 더 폭넓은 대화로 발전했으며, sam은 나중에 DeepSeek 4.1을 사용하여 브라우저와 Docker 툴링을 통해 에이전트가 작업하는 과정을 담은 전체 트랜스크립트를 생성하는 테스트를 수행했습니다.

그와 동시에 Ask AI와 AI 보조 검색에 대한 뜨거운 관심도 이어졌습니다. nat님의 Ask AI로 커뮤니티에서 더 나은 검색하기 발표 스레드에서는 EricGT, Moin 및 기타 사용자들로부터 클래식 검색과 AI 검색 전환, “이 주제 내에서” 범위 유지, 그리고 AI 답변에 현재 열려 있는 주제를 결과에 포함해야 하는지에 대한 상세한 피드백이 이어졌습니다. satonotdead는 ask.discourse의 좋아요/싫어요 버튼에 대한 흥미로운 질문을 제기하여 싫어요가 플래그로 매핑된다는 사실을 알게 되었고, AdamWargon는 왜 Discourse가 역사적으로 싫어요 버튼을 피해왔는지를 상기시켰습니다. 그것은 기술적으로 정확한 Q&A보다는 대화를 촉진하기 위함이었기 때문입니다.

이번 주에는 몇 가지 중요한 버그 보고서와 수정 사항도 있었습니다. Steve_Walmsley는 Discourse AI가 제멋대로 행동하는 기이한 대화에 대해 보고했는데, 여기서 헬퍼 AI가 잘못된 조언을 제공한 뒤 이를 부인했습니다. david는 CDCK 호스팅 LLM이 상황을 개선하기 위해 업데이트되었음을 확인했습니다. pedro는 스팸 감지 에이전트 LLM 업데이트가 기능 탭에 유지되지 않는 문제를 접수했고, sam은 PR로 이를 수정했습니다. Moin는 AI 에이전트 그룹 설정이 곧 everyone 그룹을 제거할 예정인 변경 사항에 의해 처리되지 않는 것 같습니다라는 점을 발견했고, martin는 신속하게 수정 PR을 열었습니다. 번역 워크플로우도 주목을 받았습니다: AI 없이 Discourse와 LibreTranslate 사용하기, AI 번역에서 번역되지 않은 텍스트 수정 방법, 그리고 AI 생성 태그 번역이 완벽하게 작동하지 않음에서 계속 제기되고 있는 독일어 태그 번역 오류에 대한 불만입니다.

전반적으로 이번 주의 주제는 실용적이고 손으로 직접 하는 AI였습니다: 에이전트로 빌드하기, 그 출력 평가하기, 거친 부분 수정하기, 그리고 창의적인 우회책 공유하기.

흥미로운 주제

  • Discourse MCP를 활용해 빠르게 테마 만들기 — sam는 Discourse 트라이얼을 가져와 전역 API 키를 생성하고, Discourse MCP와 OpenAI Codex(GPT-6 Astra 구동)를 사용하여 커스텀 테마(폰트, 브랜딩, 색상 등)를 생성하는 방법을 시연했습니다. EricGT는 모델은 생각하고, 에이전트는 행동하며, 하네스는 에이전트가 바보처럼 행동하지 못하게 막아준다고 지적하며, 목적에 맞게 구축된 AI 하네스가 이야기에서 더 흥미로운 부분이 되고 있다고 주장했습니다. ducks는 셀프 호스터에게도 작동함을 확인하고 커뮤니티 디렉터리 테마의 전후 스크린샷을 공유했습니다. 이후 sam은 이미지 생성에는 Qwen 3 Image, 브라우저 제어에는 chrome-devtools-mcp를 사용하여 DeepSeek 4.1 flash max로 동일한 작업을 수행했으며, 전체 트랜스크립트를 포함했습니다.

  • Discourse AI가 제멋대로 행동하는 경우 — Steve_Walmsley는 헬퍼 AI가 두 번 잘못된 조언을 한 뒤, 심지어 스크린샷으로 대조해도 그런 말을 한 적이 없다고 부인하며 거짓말을 하고 있다고 비난하는 정말 기이한 경험을 했습니다. EricGT는 해당 기능을 뒷받침하는 모델이 무엇인지 조사하는 데 도움을 주며, CDCK Hosted LLM 기본값이 실제로는 Mixture of Models 라우팅 레이어임을 설명하고(자세한 내용은 What is CDCK/MoM? 참조), Discourse AI LLM 설정 페이지를 가리켰습니다. david는 나중에 호스팅 LLM 서비스에 수정 사항이 배포되었음을 확인했습니다.

  • Ask AI로 커뮤니티에서 더 나은 검색하기 — Ask AI 발표 스레드는 풍부한 피드백의 원천이 되었습니다. EricGT는 관련 GitHub 이슈를 찾는 데 Ask AI와 ChatGPT를 비교한 반면, Moin는 클래식 검색 토글이 찾기 어렵고, 더 많은 단어를 입력할 때 “이 주제 내에서” 필터가 사라진다고 지적했습니다. nat는 이 회귀 버그를 인정하고 조사하겠다고 말했습니다. EricGT는 또한 AI가 현재 열려 있는 주제를 자신의 결과에 포함하거나, 그렇게 하지 않는 것이 현명하지 않은 새 스레드에서 "주제 생성"을 제안하는 등 거친 부분들을 문서화했습니다.

  • ask.discourse의 좋아요와 싫어요에 대해 — satonotdead는 ask.discourse의 좋아요/싫어요 UI가 모든 사용자에게 제공되는 기능인지 물었으며, 이를 AI 답변에 대한 필수 모니터링 도구로 보고 있습니다. Falco는 이것이 특별할 것이 없다고 명확히 하며, 좋아요는 좋아요(likes)이고, 싫어요는 플래그(flags)이다라고 설명했습니다. AdamWargon는 codinghorror가 Discourse를 설계할 때 대화를 촉진하고 긍정적인 인간 연결을 위해 의도적으로 싫어요 버튼을 피했다고 덧붙였습니다.

  • AI 에이전트 그룹 설정이 곧 everyone 그룹을 제거할 예정인 변경 사항에 의해 처리되지 않는 것 같습니다 — Moin는 세분화된 익명/로그인 그룹 권한 변경을 활성화하면 AI 에이전트 권한이 깨진다는 것을 발견했습니다: "everyone"으로 설정된 교정 에이전트가 로그인한 사용자에게 더 이상 표시되지 않는 것입니다. martin는 이 엣지 케이스를 인정하고 신속하게 수정 PR을 열었습니다. satonotdead는 기능 유지 위해 수동으로 사용자 그룹을 요약 에이전트에 추가해야 했음을 언급하며 이 문제를 확인했습니다.

  • AI 없이 Discourse와 LibreTranslate 사용하기 — 커뮤니티가 의도적으로 AI를 피하고 있는 happyhappy는 코어의 새로운 AI 번역 배선이 LibreTranslate 연결에 사용될 수 있는지 물었습니다. NateDhaliwal는 두 가지 경로, 즉 translator 플러그인(LibreTranslate를 지원하지만 수명 종료 상태)과 ai 플러그인의 LLM 기반 콘텐츠 현지화를 설명하고, happyhappy가 어떤 통합이 유지되기를 원하는지 물었습니다.

  • 스팸 감지 에이전트 LLM 업데이트가 기능 탭에 유지되지 않음 — pedro는 저중도 버그를 접수했습니다: 구성에서 스팸 감지 에이전트의 LLM을 변경해도 AI 기능 탭에는 반영되지 않고 여전히 CDCK Hosted LLM이 표시되는 문제입니다. sam는 이것이 discourse PR #43566으로 수정되어야 한다고 확인했습니다.

  • AI 번역에서 번역되지 않은 텍스트 수정 방법 — Jagster는 실수로 핀란드어 문장을 번역하지 않고 남겨두었고 어떻게 수정해야 하는지 물었습니다. Moin는 번역 메뉴(편집 가능하며, 재번역 중에는 잠재적으로 오래된 것으로 표시됨)를 가리키며, 번역이 디바운스(debounced)되므로 원문 문장을 제거하면 전파되는 데 시간이 걸린다고 지적했습니다. Moin은 또한 AI 생성 태그 번역이 완벽하게 작동하지 않음에서 boards 태그가 "kanban-board"가 되고 #ramping-up이 “ausschwingen”(반대 의미)으로 번역되는 독일어 오역의 재미있는 예를 공유했습니다.

  • Ai추론모드 오류 — singi2016cn의 새로운 Support 주제입니다. 추론 모드를 사용할 때 커스텀 LLM 라우터 게이트웨이에서 400 오류가 발생한다고 보고했습니다: 제공업체는 reasoning_content가 다시 전달되어야 한다고 요구합니다. 스트리밍이나 추론 모드를 비활성화하면 우회할 수 있지만 추론 능력은 상실됩니다. sk-or-v1-contents는 이것이 DeepSeek/제공업체 고유 문제로 보이며, 완료 중에 추론 토큰을 다시 보내는 기능 요청의 가능성을 제기했습니다.

  • 커스텀 헬퍼 프롬프트 설정 방법 — satonotdead가 깔끔한 트릭을 문서화한 해결된 Support 주제입니다: 커스텀 프롬프트 대신 사용되지 않는 내장 헬퍼 에이전트를 재사용하고 Customize → Text를 통해 라벨을 변경하는 것입니다. ai_helper_translator_agent를 커스텀 검색 에이전트로 매핑하고, 아이콘을 위한 작은 api-initializer 스니펫과 함께 Composer Translate 및 Markdown 포맷팅을 위해 헬퍼 슬롯을 재사용했습니다.

  • Discourse AI 아티팩트 키-값 업데이트를 위한 웹훅/이벤트 지원 추가 — 이 오래된 #Feature 요청은 MachineScholar로부터 또 다른 관심을 받았습니다. AI 아티팩트 키-값 업데이트에 대한 웹훅 지원(또는 관리자가 샌드박싱을 비활성화할 수 있도록 하는 것)에 대한 업데이트가 있는지 물었습니다. 원래 답변에서는 Workflows가 도입되면 다시 검토될 것이라고 언급했는데, Workflows는 Discourse에서 자동화를 위한 새로운 접근 방식입니다.

활동

읽어주셔서 감사드리며, 다음 주에 다시 뵙겠습니다! :slight_smile:

meta.discourse.org AI 활동 주간 요약

개요

지난 7일 동안 meta.discourse.org에서는 ai 생태계 전반에 걸쳐 새로운 분석 기능, 모델 호환성 문제 해결, 그리고 업스트림 개발 성과가 두드러졌습니다. nat는 새로운 Ask AI로 사용자가 묻는 것들 관리자 대시보드 섹션을 공개한 #Announcements 게시물과 Discourse AI 번역에서 용어집(glossary) 사용법에 대한 상세한 #Site Management 가이드라는 두 가지 중요한 기여로 일주일의 시작을 알렸습니다. 이는 이전에 보고되었던 Ask AI 응답 공란 문제가 awesomerobot에 의해 테마 스타일링 버그로 확인되고 Mint 테마에서 수정됨에 따라 만족스러운 해결로 이어졌습니다.

모델 상호운용성은 문제 해결 스레드에서 지배적인 주제였습니다. sniper756는 Discourse AI 플러그인과 가장 잘 작동하는 LLM 제공자는 어떤 것인지를 질문하며 DeepSeek와 Qwen의 실패 사례를 보고했고, satonotdead는 DeepSeek와 GLM이 종종 LiteLLM 프록시를 통해 커스텀 훅이 필요하다고 확인했으며, Orioni는 초저비용 Gemini 설정을 공유했습니다. 마찬가지로, 지속적인 AI 추론 모드 오류로 인해 Falco로부터 제공자 및 파서 구성에 대한 조언이 제시되었습니다. 프롬프트 엔지니어링 측면에서는, mbauman가 로케일 감지기의 충돌하는 지시 버그를 발견하고 커뮤니티에서 시험 운영 중인 개선된 대체 프롬프트를 제시했습니다.

개발 관련 주제에서도 의미 있는 진전이 있었습니다: sam는 pi.dev와 dv 통합에 대한 지침을 제공하고 MCP 기반 테마 빌딩에 대해 조언했으며, pmusaraj는 Discourse to Markdown 플러그인이 코어에 흡수되고 있다고 발표했습니다. 전반적으로, Discourse AI를 더 투명하고, 호환성이 높으며, 확장하기 쉽게 만드는 데 있어 꾸준한 진전이 있었던 한 주였습니다.

흥미로운 주제

  • Ask AI에 관리자 대시보드 추가: nat는 이전의 Ask AI로 커뮤니티에서 더 나은 검색 출시를 기반으로, 관리자 대시보드에 전용 Ask AI로 사용자가 묻는 것들 섹션이 도입되었다고 발표했습니다. 새로운 대시보드는 시간에 따른 질문 추이, 활성 사용자 수, 응답 지연 시간을 추적하며, 질문을 주별로 그룹화하고 확장 가능한 예시와 탐색 가능한 전체 보고서를 제공하는 “사용자가 묻는 것들” 뷰를 포함합니다.

  • AI 번역용 용어집(Glossary): nat가 작성한 새로운 가이드는 Discourse AI 번역에서 용어집 사용법을 설명하며, 콘텐츠 로컬라이제이션을 기반으로 합니다. 언어별 열을 가진 translation_glossary.md를 업로드하면 관리자는 번역자가 승인된 용어로 향하도록 유도할 수 있습니다. 예를 들어, "Launchpad"는 독일어로 “Startzentrale”, 일본어로 "スタートページ"가 됩니다. 단, 용어집은 모델 출력을 보장하기보다 안내하는 역할을 한다는 점을 명시합니다.

  • Ask AI 응답 공란 문제, 해결됨: Ask AI 응답 공란 수정 방법 스레드는 awesomerobot이 문제를 discourse-mint-theme의 색상 스타일로 추적하고 PR #77에서 수정을 배포한 후 해결로 표시되었습니다. 테마를 업데이트하는 셀프 호스터들은 이제 공란 응답 대신 렌더링된 AI 텍스트를 확인하게 될 것입니다.

  • 커뮤니티 LLM 선호도와 함정: sniper756는 #UX에서 Discourse AI 플러그인과 함께 어떤 대형 모델을 사용하느냐는 질문으로 토론을 시작했습니다(我想调研一下,大家discourse ai 插件都用的什么大模型?). DeepSeek v4.1 flash가 토픽 요약과 Ask AI에서 실패한다고 보고했습니다. RGJ는 DeepSeek가 자신에게는 잘 작동한다고 응답했고, satonotdead는 DeepSeek와 GLM이 종종 LiteLLM 프록시를 통해 커스텀 훅이 필요하다고 확인했으며, Orioni는 Gemini 2.5 Flash Lite가 하루 약 €0.01로 3.1 Flash Lite의 하루 약 €0.10보다 저렴하다고 공유했습니다.

  • 로케일 감지기 프롬프트 모순: #Bug에서 mbauman는 기본 로케일 감지자 에이전트에 충돌하는 지시가 있다고 보고했습니다: 한 줄은 JSON 출력을 요구하는 반면, 다른 줄은 순수한 언어 코드를 요구합니다. RGJ는 엄격한 출력 규칙을 이전의 로케일 감지자 반환 값 문제로 추적했는데, 여기서 일부 LLM이 응답을 따옴표나 백틱으로 감쌌습니다. mbauman은 단계별 추론과 큐레이션된 언어 코드 목록을 추가한 시험 프롬프트를 공유했고, satonotdead는 이것이 특정 모델에서 도움이 된다고 확인했습니다.

  • Discourse Vibe와 pi.dev 통합: satonotdead는 #Support에서 pi.dev를 dv와 함께 올바르게 사용하는 방법을 질문했습니다. sam는 dv 컨테이너 내부에 pi를 설치하고 훅을 연결하는 것을 제안했으며(덜 흔한 하네스를 교체하여 공간을 마련할 수도 있다고 언급), 컨테이너 내부 웹 프론트엔드가 워크플로우를 더 풍부하게 한다고 강조했습니다. 여기에는 작업의 비디오와 스크린샷 생성이 포함됩니다.

  • DeepSeek 스타일 모델의 추론 모드 오류: Support 스레드 Ai推理模式报错 (AI 추론 모드 오류)에서는 추론 모드가 활성화될 때마다 “模型返回了空的回答” (모델이 빈 답변을 반환함)이 보고되었습니다. Falco는 deepseek_v4 추론 파서를 가진 vLLM 제공자로 전환하는 것을 제안했고, singi2016cn는 모델이 실제로 콘텐츠를 반환했지만 Discourse가 파싱하지 못했다는 로그를 공유했으며, satonotdead는 일부 모델은 추론을 "low"나 기본값으로 설정해야만 작동하며, 종종 LiteLLM 우회 조치가 필요하다고 언급했습니다.

  • Discourse MCP를 통한 테마 빌딩: Discourse MCP를 사용하여 테마를 빠르게 빌딩하는 방법에 대한 #Extras 스레드에서, nicolsdennis는 GPT-6 Astra만이 시각적 디자인을 정확하게 재현했으며, 다른 모델들은 제시된 룩에서 벗어났다고 관찰했습니다. sam는 dv 컨테이너 내에서 작업하여 커스텀 UI 요소의 코드 예시를 빠르게 찾는 것을 권장했습니다.

  • Markdown 내보내기 코어 이동: pmusaraj는 Discourse to Markdown 플러그인의 기능이 업스트림으로 이동되고 있으며, 첫 번째 PR이 discourse/discourse#43843에 있다고 공유했습니다. 이 기능은 처음에는 숨겨진 사이트 설정 뒤에 위치하다가 나중에 기본적으로 활성화되어, 독립형 플러그인을 대부분 불필요하게 만들 것입니다.

활동

지난 7일 동안 ai 토론에 기여한 모든 분들의 요약입니다:

읽어주셔서 감사합니다, 다음 주에 다시 뵙겠습니다! :slight_smile:

meta.discourse.org 주간 AI 활동 요약

보고 기간: 2026년 9월 21일 – 28일

이번 주에는 새로운 게시물 23개, 새로운 주제 3개가 등록되었으며, ai 태그를 중심으로 활발한 논의가 이어졌습니다. 주요 신규 기능 발표, AI Web Artifacts의 보안 관련 회귀 버그, 그리고 AI 번역 및 임베딩 동작 방식에 대한 새로운 논쟁이 그 중심에 있었습니다.

개요

이번 주의 헤드라인은 awesomerobot이 Discourse가 이제 자신만의 AI Q&A 홈페이를 구동할 수 있게 되었습니다라고 발표한 것입니다. 이는 ask.discourse.com과 같은 독립적인 지원 경험을 위한 문을 열었습니다. 후속 설정 가이드에서는 전용 에이전트 구축 과정을 안내했으며, 커뮤니티는 즉시 이 기능을 앱 면접관과 같은 더 큰 아이디어와 연결시키기 시작했습니다.

또 다른 주요 이슈는 AI Web Artifacts의 회귀 버그였습니다. satonotdead는 거의 모든 게시된 아티팩트가 작동하지 않는다고 보고했으며, sam는 이를 공유 제약 조건을 지나치게 엄격하게 만든 보안 수정 사항으로 추적했습니다. 이제 단일 아티팩트를 공유하는 새로운 시스템이 개발 중입니다.

현지화(L10N) 측면에서는 AI 생성 태그 번역에 대한 장기적인 스레드가 다시 활성화되어, 관리자가 자동 번역을 제어할 수 있도록 하는 기능 요청이 새롭게 제기되었습니다. 한편, 임베딩 비용 및 제공자 관련 질문에 대해 14.3GB 데이터베이스에 대한 답변이 제공되었으며, 토픽 요약과 Interactions API 오류 보고를 둘러싼 두 가지 버그가 7일 기간 동안 처리되었습니다.

흥미로운 주제

활동

읽어주셔서 감사합니다, 그리고 다음 주에 다시 만나요! :slight_smile:

주간 AI 활동 요약: meta.discourse.org

2026년 9월 28일 ~ 10월 5일 주간

개요

meta.discourse.org에서는 4개의 새 주제와 10개의 새 게시글이 Discourse AI의 안정성과 콘텐츠 로컬라이제이션에 거의 전적으로 집중된 짧지만 내용적인 한 주를 보냈습니다. 이번 주의 주요 소식은 nat 님이 사용자 언어가 설정된 사용자에게 이메일을 보낼 때 번역된 게시글 사용에서 발표한 내용으로, 알림 및 활동 요약 이메일이 이제 사용자의 선호 언어를 준수하며 PR #44240을 통해 배포되었습니다. 이는 nukeador 님이 정확히 이 동작을 요청하며 같은 스레드를 다시 올린 지 불과 며칠 만에 이루어진 것입니다.

나머지 주간 일정은 Sailor 님이 주도한 버그 헌팅 마라톤이었습니다. Sailor 님은 세 가지 세밀한 보고서를 제출했는데, 이들은 묵시적으로 무시되는 Gemini 스트리밍 오류, 빈 응답으로 처리되는 Gemini 프롬프트 블록, 그리고 번역이 저장되기 전에 푸시가 큐에 추가되는 콘텐츠 로컬라이제이션 푸시 알림 레이스 컨디션입니다. zogstrip 님은 첫 두 가지가 PR #44262로 처리됨을 확인했고, jmx 님은 Mistral 스트리밍 시 병렬 도구 호출이 묵시적으로 삭제되는 별개의 문제를 발견하여 커뮤니티 PR을 열도록 초대받았습니다.

이번 주 최고의 기여자는 nat 님과 Sailor 님(각각 5개의 좋아요)이며, 그 뒤를 jmx 님(3개), zogstrip 님(2개), nukeador 님이 이었습니다.

요약하자면, 이번 주 스레드는 두 가지 주제 중심으로 형성되었습니다:

흥미로운 주제

활동

읽어주셔서 감사드리며, 다음 주에 다시 뵙겠습니다! :slight_smile:

개요

2026년 10월 5일부터 12일까지 meta.discourse.org에서는 3개의 새 주제에 걸쳐 27개의 새 게시물이 생성되었으며, #ai가 대화의 대부분을 차지했습니다. 중심 토론은 pfaffman의 Search is making me unhappy였으며, 이는 Search better in your community with Ask AI에 대한 더 광범위한 비판으로 확장되었고, nat가 더 최근의 결과를 선호하도록 AI 검색 프롬프트를 조정하도록 유도했습니다. 버그 수정도 핵심 이슈였습니다: sam는 Discourse AI: parallel tool calls silently dropped with Mistral (streaming)과 Discourse AI: Gemini streaming decoder drops the rest of a reply를 해결했으며, Sailor는 Discourse AI: Gemini request blocked via promptFeedback.blockReason에 대해 후속 조치를 취했습니다.

두 가지 공지 사항이 이번 주를 마무리했습니다: Introducing the Discourse Admin Assistant 스레드는 data-explorer 쿼리 작성 지원을 추가했으며, sam은 Announcing: AI Web Artifacts에서 재구성에 대한 보고를 했습니다. Are the AI Agent chats working here on Meta?에 대한 Support 문의가 이번 주 AI 관련 활동을 마무리했습니다.

흥미로운 주제

활동

읽어주셔서 감사합니다, 그리고 다음 주에 다시 뵙겠습니다! :slight_smile:

meta.discourse.org의 AI 활동 주간 요약

2026년 10월 12일~19일 주 — 새로운 주제 3개에 걸쳐 총 11개의 새 게시물이 올라온 한 주였습니다. 주요 AI 기능 발표, 에이전트 라우팅에 대한 생산적인 디자인 논의, 신규 사용자 온보딩 스레드, 그리고 새로운 버그 리포트가 있었습니다. 이번 주 최고의 기여자는 sam(좋아요 26회, 게시물 2건), NateDhaliwal(좋아요 3회), satonotdead(좋아요 2회)였으며, opalgeist, awesomerobot, singi2016cn, tobiaseigen, Frully도 도움을 주었습니다.

개요

가장 주목할 만한 사건은 sam이 Discourse AI에서 내장된 의사결정 모델 지원을 발표한 것입니다. 이는 TypeSafe.ai가 주도하고 Cloudflare, OpenAI 등이 이미 구현한, 오랫동안 기대를 모아온 System One 의사결정 모델입니다. 범용 LLM 분류와 달리, 이러한 모델은 임의의 질문에 빠르고 정확하게 저렴하게 답변함으로써 텍스트와 이미지를 분류하며, 이제 Discourse AI 관리 패널에서 직접 구성할 수 있습니다. 이 발표는 커뮤니티의 즉각적인 관심을 불러일으켰고, satonotdead는 의사결정 모델이 “시니어 헬퍼(Senior Helper)” 에이전트 트리아지를 구동할 수 있는지 물었습니다. sam은 이를 탐구하는 데 열의를 보였고, 이는 흥미로운 게이트 기반 서브에이전트 라우팅 디자인 제안으로 이어졌습니다.

동시에, 신규 사용자 opalgeist는 데스크톱 클라이언트, AI 기능 비활성화, 학습 자료에 대한 실용적인 질문을 포함하여 커뮤니티를 Discourse로 이전하는 스레드를 열었습니다. 해당 스레드에서는 NateDhaliwal의 포괄적이고 해결된 답변, 무료 플랜의 AI 콘텐츠 스캐닝 및 호스팅 모델에 대한 awesomerobot의 중요한 설명, 그리고 공식 문서로의 유용한 안내를 제공한 singi2016cn의 참여가 있었습니다.

버그 관련해서는, Frully가 로그에는 성공적이고 유효한 JSON 응답이 표시되지만 프론트엔드가 "AI가 명확한 답변을 찾을 수 없습니다"라고 주장하는 모호한 AI 검색 실패 사례를 보고했습니다. 이 문제는 자체 호스팅 포럼과 메타 사이트 모두에서 재현됩니다. 마지막으로, tobiaseigen는 진행 중인 AI 봇 대화를 위한 독킹 컴포저(docked composer) 토론에 노트를 추가하며, ai_bot_enable_docked_composer 설정을 제거하려는 계획에 대해 부드럽게 반대 의견을 표명했습니다.

흥미로운 주제

  • TypeSafe Jev 및 기타 System One 의사결정 모델 — sam은 #Announcements 게시판에 ai 및 workflows 태그를 달아 의사결정 모델의 내장 지원을 발표했으며, 스레드 전체에서 26개의 좋아요를 받았습니다. 이러한 모델은 LLM 기반 접근법의 비용의 일부만 들이며 임의의 질문을 통해 텍스트와 이미지를 분류합니다. 이제 Discourse AI 관리자 설정에서 새 탭으로 노출됩니다(관련 프로바이더가 활성화되면 즉시 표시됨). satonotdead는 응답 트리아지 에이전트에 대한 잠재력을 즉시 알아차리고 일반 에이전트에 통합하는 것에 대해 질문했고, sam은 올바른 에이전트나 서브에이전트를 찾아 답변하기 위해 이를 "게이트(gate)"로 사용하고자 탐구하기를 원한다고 확인했습니다.

  • 5개 서브에이전트 게이트 아키텍처 — 같은 스레드의 후속 게시물에서, satonotdead는 구체적인 디자인을 제안했습니다: 의사결정 모델을 가리키는 에이전트의 게이트 설정으로, 선택지는 기존 서브에이전트 설명과 "본인이 답변"입니다. 게이트는 신뢰도 임계값 이하에서 실행되며, 이 경우 결과는 힌트로 부모 LLM에 전달됩니다. 임계값 이상이면 서브에이전트가 직접 실행됩니다. 의사결정 모델이 이미지를 분류하므로, “멤버가 차트를 공유함” 같은 상황에서도 라우팅을 구동할 수 있습니다. sam은 그의 답변에서 이것이 탐구할 가치가 있는 넓은 용도 영역이라고 평가했습니다.

  • 새로운 Discourse 사용자 - 몇 가지 질문 — product Support 게시판에 ai 태그가 달린 이 해결된 스레드는 opalgeist가 예비 관리자에게 공통적인 세 가지 질문을 다뤘습니다: 데스크톱 클라이언트가 존재하는지(공식 제품은 없지만 PWA 및 비공식 클라이언트는 있음), AI 기능을 완전히 비활성화할 수 있는지, 어디서 시작해야 하는지입니다. NateDhaliwal의 해결 답변은 자체 호스팅이 한 줄 설치임을 설명하고 비공식 소셜/모바일 데스크톱 클라이언트와 같은 대안을 언급했습니다. awesomerobot는 무료 플랜 정책을 명확히 했습니다: 콘텐츠 스캐닝은 모더레이션을 위해 비활성화할 수 없지만, 다른 모든 AI 기능은 옵션이며 관리자 사이트 설정 필터를 통해 전환할 수 있습니다. 또한 기본 모델은 Discourse 자체에서 호스팅되므로 데이터가 제3자 AI 회사로 전송되지 않는다고 확인했습니다.

  • 로그에는 성공으로 표시되지만 AI 검색 실패 — #Self-hosting 게시판에 search 및 ai 태그가 달린 이 스레드에서, Frully는 심오하게 혼란스러운 문제를 문서화했습니다: AI 임베딩과 시맨틱 검색이 활성화되어 있을 때, *“재무제표는 어디에 있나요?”*와 같은 쿼리는 유효한 JSON을 포함한 성공적인 백엔드 응답을 생성합니다(답변, "answerable": true, 출처 참조 포함)하지만 UI는 "AI가 명확한 답변을 찾을 수 없습니다"라고 보고합니다. 이 동작은 meta.discourse.org 자체에서도 재현되므로 플랫폼 수준의 버그로 조사할 가치가 있습니다.

  • AI 봇 대화를 위한 독킹 컴포저 도입 — composer 및 ai-bot 독킹 컴포저에 대한 이 진행 중인 #Announcements 주제에 새로운 목소리가 추가되었습니다: tobiaseigen는 관련 설정이 채팅 설정이 아닌 인터페이스 설정에 묻혀 있다는 점, 그리고 더 중요하게 enter 키 전송 동작이 AI 봇 메시지 워크플로우를 깨뜨린다는 점을 지적했습니다(예: 불릿 포인트 생성 또는 태그, 카테고리, 이모지의 자동완성). ai_bot_enable_docked_composer 설정이 제거 예정임을 언급하며, 이를 유지해 달라는 가볍지만 진지한 요청을 했습니다.

활동

읽어주셔서 감사합니다, 다음 주에 또 만나요! :slight_smile:

주간 AI 활동 요약 – meta.discourse.org

기간: 2026년 10월 19일 – 2026년 10월 26일


개요

이번 주에는 Discourse의 확장되는 AI 기능들을 중심으로 검색 실험, 감성 분류 개선, 봇 마이그레이션 과제, 그리고 AI 파이프라인 내 여러 운영 버그에 대한 꾸준하지만 의미 있는 활동이 있었습니다. awesomerobot의 헤드라인 발표는 #ANNOUNCEMENTS에서 소규모 결정 모델을 활용하여 사용자 쿼리를 AI 검색과 키워드 검색 사이로 자동으로 라우팅하는 새로운 통합 AI 검색 실험을 소개했으며, 이는 더 지능적인 헤더 검색 경험으로 나아가는 중요한 단계입니다. 한편, #FEATURE에서의 감성 분석 가치에 대한 커뮤니티 논의는 Falco와 sam가 LLM 기반 분류 및 감성 점수 산정을 위한 Jev 스타일 결정 모델을 포함한 단기 개선 사항을 설명하도록 이끌었습니다.

지원 및 버그 측면에서는, Don가 에이전트별 봇 사용자 변경 이후 AI Agent PM에 대한 마이그레이션 간극을 제기했고, RBoy는 두 가지 별개의 문제를 보고했습니다. 하나는 2026.9.0 업그레이드 후 발생한 임베딩 검색 타임아웃이고, 다른 하나는 Google Interaction Endpoints에서의 AI 트리아지 실패입니다. monty25는 비관리자 사용자의 편집된 게시물이 재번역을 트리거하지 않는 번역 최신화 버그를 문서화했습니다. 전반적으로 6개의 새 주제와 16개의 새 게시물은 제품 전략과 실제 배포 마찰 모두를 다루고 있는 활발하지만 집중된 커뮤니티를 반영합니다.


흥미로운 주제

  • 결정 모델을 활용한 통합 AI 검색 – #ANNOUNCEMENTS search #AI에서 awesomerobot는 단일 헤더 바 아래 AI 검색과 키워드 검색을 통합하는 새로운 통합 AI 검색 실험을 발표했습니다. 이 실험은 결정 모델이 답변 또는 키워드 조회? 및 *여기 또는 전체 사이트?*라는 두 가지 구조화된 질문에 답함으로써 최적의 검색 모드를 선택하도록 합니다. 모델은 신뢰도 임계값 이상에서만 작동하며 느릴 경우 건너뛰어 UX가 신속하게 유지됩니다. 이는 이전의 Typesafe Jev 및 기타 시스템 원 결정 모델 작업을 기반으로 합니다. 이 주제는 이번 주 최고인 14개의 좋아요를 받아 강력한 커뮤니티 관심을 나타냈습니다. 자세히 →

  • 감성 분석: 유용한가요, 무의미한가요? – nickdb는 #FEATURE ai #AI-SENTIMENT에서 현재 감성 대시보드의 가치를 의문視하며 데이터를 "부족하거나 가장 좋게 봐도 모호하다"고 지적했습니다. Falco는 LLM 기반 분류가 최근에 활성화되었고 sam이 감성을 위한 Jev 결정 모델을 추가하고 있어 정확도는 높아지지만 비용은 증가한다고 답변했습니다. satonotdead는 이전의 Discourse 감성 대시보드의 분류 스레드를 링크하고 디자인 우려 사항, 즉 수치형 감성 표시가 "인간의 채택 장벽"이며 해석력을 위해 이모지 기반 감정 지표와 병합하는 것을 제안했습니다. nickdb는 간단한 에이전트 기반 테스트를 수행하여 토큰 소비가 허용 불가능하다고 판단하고 해당 실험에서 제외되었습니다. 자세히 →

  • 새 봇 사용자로의 AI Agent PM 마이그레이션 – Don는 #PRODUCT-SUPPORT ai #AI-BOT에서 PR #43676가 AI 에이전트당 하나의 봇 사용자로 전환된 후의 마이그레이션 문제를 설명했습니다. 기존 PM 대화는 여전히 구식 봇의 숫자 사용자 ID에 묶여 있으며, 이를 새 봇으로 재매핑할 내장 방식이 없습니다. sam는 우회책으로 새 사용자를 대화에 초대하는 것을 제안했습니다. flexteam26_ag_meta는 기술적 설명을 추가하여 PM이 사용자명이 아닌 숫자 ID에 바인딩되며, 이름이 변경된 계정은 받은 편지함을 유지하지만 완전히 새로운 봇은 빈 상태에서 시작한다고 지적했습니다. 자세히 →

  • 자체 호스팅 인스턴스의 원치 않는 AI 봇 사용자 – New Discourse User – a few questions(현재 해결됨으로 표시됨)에서 이어진 스레드에서, opalgeist는 모든 AI 기능을 끄고 삭제한 후에도 자동 생성된 AI 봇 계정이 몇 분 안에 다시 나타나는 문제를 보고했습니다. awesomerobot는 이 문제를 인정하고 더 광범위한 Unwanted bots 주제와 교차 참조하며 로드맵에 알려진 버그임을 확인했습니다. 자세히 →

  • 2026.9.0 이후 임베딩 검색 “Still Running” 오류 – RBoy는 bug ai #AI-SEARCH에서 버그를 보고했습니다. Discourse 2026.9.0으로 업그레이드한 후 로그에 *“‘hijack discourse_ai/embeddings/embeddings search’ is still running after 90 seconds on db default”*가 표시됩니다. 백트레이스는 ActiveSupport::BroadcastLogger를 가리킵니다. 이는 Sidekiq 프로세스 재시작 또는 타임아웃 구성 조정이 필요한 새로운 회귀 버그일 수 있습니다. 아직 답변이 없으므로 주목하세요. 자세히 →

  • 게시물 번역이 항상 업데이트되지 않음 – monty25는 #PRODUCT-SUPPORT ai #CONTENT-LOCALIZATION에서 비관리자 사용자의 편집된 게시물이 재번역을 트리거하지 않는 반면, 관리자 자신의 편집은 트리거한다는 사실을 발견했습니다. Data Explorer 쿼리(ai_api_audit_logs)를 사용하여, Post 8(다른 사용자의 콘텐츠)은 편집되었음에도 새로운 번역 항목이 없는 반면, Post 9(관리자 본인의 것)는 있었다고 보여주었습니다. 이는 번역 파이프라인 내 권한 인식 트리거 간극을 시사합니다. 자세히 →

  • Google Interaction Endpoints에서 AI 트리아지 실패 – RBoy는 Google Vertex LLM을 Interaction Endpoints(사고(thinking)가 활성화된 Flash 3.7 / 3.8)로 마이그레이션한 후, AI 트리아지가 새 게시물에 조용히 응답을 중단했다고 보고했습니다. 오류 메시지는 다음과 같습니다: “Model turns with thought summaries must start with a thought block in thinking models.” 에이전트 구성 스크린샷은 사고 기능이 활성화되어 있음을 보여주며, 이는 Discourse의 LlmAgentTriage.handle과 Google의 새로운 인터랙션 API 계약 간의 형식 비호환성을 시사합니다. 자세히 →

  • 자체 호스팅 AI 도구(Vane/Perplexica)의 딥-서치 타임아웃 – 3월에 거슬러 올라가는 스레드(工具调用超时 – “How to resolve Discourse AI tool-call timeout?”)에서, satonotdead는 논의를 부활시켜 Vane(자체 호스팅 Perplexity 대체재) 통합이 딥-서치가 하드코딩된 10초 타임아웃을 초과하기 때문에 불가능하다고 지적했습니다. 조정 가능한 숨겨진 설정을 요청했습니다. 이는 AI 도구 통합에서 구성 가능한 타임아웃 값에 대한 점점 커지는 필요성을 강조합니다. 자세히 →


활동

awesomerobot — 16개 좋아요, 2개 게시물

이번 주 가장 많은 평가를 받은 기여자. awesomerobot는 #ANNOUNCEMENTS search #AI에서 플래그십 통합 AI 검색 실험 발표를 작성하여 결정 모델 라우팅 레이어를 설명하고 기초가 되는 Typesafe Jev 결정 모델 스레드에 링크했습니다. 또한 New Discourse User 스레드에서 opalgeist에게 지원성 있게 답변하여 원치 않는 봇 재생성 버그가 추적되고 있음을 확인하고, 선호도에 따라 포럼을 AI-free로 유지하려는 욕구를 인정했습니다. 게시물 1 → · 게시물 2 →

sam — 3개 좋아요, 2개 게시물

sam는 두 개의 스레드에 기여했습니다. 감성 분석 논의에서 LLM보다 저비용, 고속 감성 분류를 위한 결정 모델 사용을 지지하며, 이 작업에 LLM 사용은 "너무 과하다"고 표현했습니다. AI Agent PM 마이그레이션 스레드에서는 즉시 우회책으로 새 봇 사용자를 기존 PM 대화에 초대하는 것을 제안하고 스키마 변경의 "거친 여정"에 대해 사과했습니다. 게시물 1 → · 게시물 2 →

Falco — 3개 좋아요, 1개 게시물

Falco는 감성 분석 스레드에 게시물을 올려 nickdb에게 LLM 기반 감성 분류가 최근에 도입되었고 sam이 더 나은 정확도와 낮은 비용을 위해 Jev 스타일 결정 모델로 확장하고 있다고 알렸습니다. 게시물 →

nickdb — 2개 좋아요, 3개 게시물

nickdb는 #FEATURE에서 감성 분석 – 유용한가요, 무의미한가요? 주제를 열고, 나중에 새로운 LLM 분류 방법에 대한 가리켜 줄 곳을 요청했습니다. 에이전트 기반 토큰 소비 테스트를 수행한 후, 비용이 정당화되지 않는다고 판단하고 해당 실험에서 철수했습니다. 게시물 1 → · 게시물 2 → · 게시물 3 →

Don — 1개 좋아요, 1개 게시물

Don는 기존 AI Agent PM을 새 봇 사용자로 마이그레이션 스레드를 열어 명확한 불릿 포인트 형식으로 전체 마이그레이션 문제를 서술했습니다: 구식 에이전트는 새 PM을 받을 수 없고, 기존 스레드는 여전히 응답하지만 재매핑 도구가 없다는 것입니다. 그의 게시물은 GitHub PR #43676을 직접 참조했으며 sam의 답변을 유도했습니다. 게시물 →

opalgeist — 1개 좋아요, 1개 게시물

opalgeist는 New Discourse User 스레드에 게시물을 올려 awesomerobot의 안내에 감사하고 삭제 후 AI 봇 사용자가 다시 나타나는 문제에 대한 우려를 제기했습니다. 완전한 AI-free 포럼 공간을 선호한다고 표현하고 토글 설정 스크린샷을 포함시켰습니다. 게시물 →

RBoy — 0개 좋아요, 2개 게시물

RBoy는 이번 주 두 개의 버그-지원 주제를 제기했습니다. 첫째, 2026.9.0 업그레이드 후 발생한 임베딩 검색 still running 오류로, 전체 백트레이스를 포함했습니다. 둘째, Google Interaction Endpoints에서 AI 트리아지 실패로, 사고 요약 모델 오류가 자동 트리아지를 조용히 깨뜨렸습니다. 두 게시물 모두 에이전트 구성의 상세한 스크린샷을 포함했습니다. 게시물 1 → · 게시물 2 →

monty25 — 0개 좋아요, 1개 게시물

monty25는 게시물 번역이 항상 업데이트되지 않음 주제를 열어 라이브 포럼 예시, ai_api_audit_logs에 대한 Data Explorer SQL 쿼리, 그리고 Post 9는 재번역되었으나 Post 8은 그렇지 않음을 보여주는 비교 스크린샷을 제공했습니다. 게시물 →

flexteam26_ag_meta — 0개 좋아요, 1개 게시물

flexteam26_ag_meta는 AI Agent PM 마이그레이션 스레드에 심층 기술 노트를 기여하여, PM이 /u/<name>.json을 통해 숫자 사용자 ID에 바인딩되며 이름 변경 시 받은 편지함이 보존되지만 새 봇 생성 시에는 그렇지 않다고 설명했습니다. sam의 초대 우회책이 검증되었는지 물었습니다. 게시물 →

satonotdead — 0개 좋아요, 2개 게시물

satonotdead는 두 가지 기여를 했습니다. 감성 분석 스레드에서 분류 대시보드 스레드에 링크하고 원시 수치 점수보다 이모지 기반 감정 표시를 옹호했습니다. AI 도구 호출 타임아웃 스레드에서는 Vane(자체 호스팅 Perplexica) 딥-서치가 일관되게 10초 제한을 초과한다고 보고하고 구성 가능한 타임아웃 설정을 요청했습니다. 게시물 1 → · 게시물 2 →

추가 참고 링크


총계: 6개 새 주제 · 16개 새 게시물 · 10명 활성 참가자 · 요약 전반에 걸쳐 40개 이상의 주제 참조.

읽어주셔서 감사합니다, 다음 주에 다시 뵙겠습니다! :slight_smile: