The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
jsmodule 패키지를 위한 AI 기반 통계 분석 코드 생성 모듈입니다.
AI Assistant 모듈은 통계 분석을 위한 R 코드를 생성하는 대화형 채팅 인터페이스를 제공합니다. jsmodule의 gadget들과 완벽하게 통합되며 여러 AI 제공자(Anthropic Claude, OpenAI GPT, Google Gemini)를 지원합니다.
.Renviron 파일에 API 키를 추가하세요:
library(shiny)
library(jsmodule)
library(survival)
ui <- fluidPage(
titlePanel("AI Statistical Assistant"),
aiAssistantUI("ai")
)
server <- function(input, output, session) {
data <- reactive(colon)
data.label <- reactive(jstable::mk.lev(colon))
callModule(aiAssistant, "ai",
data = data,
data_label = data.label
)
}
shinyApp(ui, server)data 파라미터를 통해 제공된 데이터만 접근
가능out으로 참조됨생성된 코드는 다음 패키지만 사용할 수 있습니다:
jstable, jskm, jsmodule, survival, ggplot2, ggpubr,
pROC, data.table, DT, gridExtra, GGally, forestploter,
MatchIt, timeROC
모듈은 변수 구조 정보를 자동으로 생성합니다: - Factor 변수 - Numeric
변수 - 사용자 정의 구조 (data_varStruct 파라미터로 제공
시)
callModule()의 명시적 api_key 인자show_api_config = TRUE인 경우).Renviron 파일)show_api_config 파라미터는 API 키 관리 방식을
제어합니다:
show_api_config = TRUE (기본값).Renviron 파일보다 우선show_api_config = FALSE.Renviron 파일 또는 명시적 api_key 인자만
사용server <- function(input, output, session) {
data <- reactive(lung)
data.label <- reactive(jstable::mk.lev(lung))
# 변수 역할 정의
var_struct <- reactive({
list(
variable = names(lung),
Base = c("age", "sex", "ph.ecog"),
Event = "status",
Time = "time"
)
})
callModule(aiAssistant, "ai",
data = data,
data_label = data.label,
data_varStruct = var_struct
)
}AI 응답을 개선하기 위해 배경 정보를 제공하세요:
문제: “API key not configured” 오류
해결책:
.Renviron 파일에 올바른 변수명이 있는지 확인.Renviron 편집 후 R 세션 재시작Sys.getenv("ANTHROPIC_API_KEY"))문제: 생성된 코드가 실행 실패
해결책:
문제: summary() 결과가 여러 조각으로
나뉨
해결책: 최신 버전에서 수정되었습니다. jsmodule 패키지를 업데이트하세요.
문제: \n이 줄바꿈 대신 그대로 보임
해결책: 최신 버전에서 수정되었습니다. jsmodule 패키지를 업데이트하세요.
❌ 나쁨: “이 데이터를 분석해줘”
✅ 좋음: “wt.loss를 결과변수로, age, sex, ph.ecog를 예측변수로 선형회귀분석 수행”
“Run Code” 클릭 전에 항상 에디터에서 코드를 검토하세요
analysis_context 파라미터를 사용하여 AI에게 데이터에
대한 배경 정보를 제공하세요
처음부터 다시 시작하기보다 후속 질문으로 코드를 개선하세요
Q: "치료군(rx)별 기저 특성을 비교하는 Table 1을 만들어줘"
Q: "time과 status를 생존 결과로, age, sex, ph.ecog를 보정하여
Cox 회귀분석 수행"
Q: "치료군별로 층화한 Kaplan-Meier plot을 risk table과 함께 그려줘"
Q: "wt.loss ~ age + sex + ph.ecog 선형모델에서 VIF로 다중공선성 확인"
AI Assistant 모듈은 보안과 사용성의 균형을 위해 환경 인식 코드 실행을 구현합니다:
개발 모드 (기본값): - 표준 eval()
함수로 코드 실행 - 디버깅과 개발이 용이 - 모든 콘솔 출력 표시 - 로컬,
신뢰할 수 있는 환경에 적합
프로덕션 모드: -
RAppArmor::eval.secure()로 샌드박스 실행 (Linux 전용) -
향상된 보안 및 리소스 제한: - 1GB RAM 제한 - 1MB 파일 크기 제한 - 10초
타임아웃 - 새 프로세스 생성 금지 - 시스템 명령 실행 방지 - 공개 배포 시
필수
환경 감지: 모듈은 다음을 통해 프로덕션 환경을 자동 감지합니다:
DEPLOYMENT_ENV 환경 변수 (production 또는
development).production 마커 파일배포 모드 설정:
로컬 개발용 (기본값):
프로덕션 배포용:
또는 마커 파일 생성:
Linux 서버 설정 (RAppArmor용):
# AppArmor 설치
sudo apt-get install apparmor apparmor-utils libapparmor-dev
# R 패키지 설치
R -e "install.packages('RAppArmor')"플랫폼 지원:
⚠️ 중요: API 키 처리 방식
API 키 사용 방법:
.Renviron) 또는 UI 입력에서
읽음httr 패키지를 사용하여 AI 제공자 API로
전달오픈소스입니다:
✅ 이 모듈이 API 키로 하지 않는 것:
✅ AI 제공자로 전송되는 것:
전송되지 않는 것:
개인/데스크톱 사용 (권장):
팀/공유 사용:
.Renviron에 자신의 API 키를 사용해야 함show_api_config = TRUE 설정공개 웹 애플리케이션:
show_api_config = TRUE로 공개 배포하지 마세요.Renviron 파일 (개인 사용 권장):
~/.Renviron (사용자 홈 디렉토리)api_key 인자 (고급 사용):
민감한 데이터로 작업하는 경우:
최대 보안을 위해:
# 1. .Renviron에 API 키 저장 (코드에 절대 포함하지 않음)
usethis::edit_r_environ()
# 추가: ANTHROPIC_API_KEY=your_key
# 2. 프로덕션에서는 show_api_config = FALSE 사용
aiAssistantUI("ai", show_api_config = FALSE)
# 3. .Renviron을 버전 관리에 커밋하지 않음
# .gitignore에 추가:
# .Renviron
# .Renviron.local
# 4. API 키를 정기적으로 교체 (90일마다 권장)
# 5. 제공자의 대시보드를 통해 API 사용량 모니터링이슈나 기능 요청은 다음에서 제출해주세요: https://github.com/jinseob2kim/jsmodule/issues
jsmodule 패키지 라이선스와 동일합니다.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.