터미널에서 ChatGPT를 즐겨보세요. 중국어
A guru is a teacher or mentor who is highly respected and knowledgeable in
their field. The term is often associated with spiritual or religious
leaders, but can also refer to experts in other areas such as business,
technology, or health. -- generated by ChatGPT
--oneshot
사용하여 각 요청에 대한 컨텍스트 메시지를 삭제하는 원샷 모드를 입력합니다. 마지막 대화를 계속하려면 --last
로 guru
시작하세요. go install github.com/shafreeck/guru@latest
Guru는 OpenAI의 개방형 API를 사용하여 ChatGPT와 통신합니다. 개발자 계정으로 로그인하여 해당 API 키를 받으세요.
https://platform.openai.com/account/api-keys
처음으로 guru를 구성하고 guru config
실행한 후 위 단계에서 얻은 OpenAI API 키를 입력하세요. 양말5 프록시는 선택적으로 사용할 수 있습니다. 이 단계를 건너뛰고 명령에 매개변수를 직접 사용할 수 있지만 비밀 키를 구성 파일에 저장하는 것이 좋습니다.
> guru [text]
guru
직접 실행하여 대화 모드로 들어갑니다. guru
실제로 guru chat
명령의 별칭입니다. oneshot
모드로 들어가려면 --oneshot
플래그와 함께 guru를 실행하세요. 이 모드에서 guru는 각 요청에 대한 컨텍스트 메시지를 삭제합니다. 세션은 항상 자동으로 기록됩니다.(기본값은 ~/.guru/session/
디렉터리에 있음)
> guru cheat
guru cheat
사용자 입력을 단순화하는 데 사용되는 guru chat -p Cheatsheet
명령의 별칭입니다.
> git diff | guru commit
guru commit
은 guru chat -p Committer
의 별칭입니다.
일회성 대화 모드를 시작하려면 --oneshot
매개변수를 사용하십시오. 이 모드에서는 컨텍스트 메시지가 자동으로 삭제됩니다. 그러나 --prompt, -p
프롬프트를 지정하는 경우 프롬프트 내용이 고정되어 각 요청과 함께 제출됩니다.
: message pin
명령을 사용하여 메시지를 고정하세요.
guru --oneshot
echo list files in this dir in detail | guru cheat | sh
ChatGPT는 서버 측에서 대화의 컨텍스트를 저장하지 않습니다. 컨텍스트 인식 기능은 클라이언트에서 모든 컨텍스트 콘텐츠를 제출함으로써 달성됩니다. OpenAI API에 정의된 대로 제출된 질문이나 답변된 답변을 모두 메시지라고 합니다. 메시지의 내용은 토큰으로 토큰화되며 제출 및 응답 모두에 대한 총 토큰 제한이 최대 4096개입니다. 긴 대화를 하면 토큰이 소진됩니다.
Guru는 롤링 창을 통해 지속적인 대화를 달성하기 위해 오래된 메시지의 자동 정리를 지원합니다. 그러나 때때로 ChatGPT에 제출된 메시지를 보다 정확하게 제어할 수 있기를 기대합니다. 이때 메시지 관리의 내부 명령을 사용하여 메시지를 수동으로 축소, 삭제 또는 추가할 수 있습니다.
삭제하고 싶지 않거나 롤링 창에서 정리하고 싶지 않은 메시지의 경우 : : message pin
명령을 사용하여 메시지를 고정할 수 있습니다. 원샷 모드에서는 이 방법을 사용하여 프롬프트 메시지를 고정합니다. 그러면 각 질문에 대해 프롬프트가 제출됩니다.
: message list
현재 메시지를 모두 나열합니다. 별칭은 :ls
입니다.: message delete [id...]
메시지 삭제. 여기서 매개변수는 동시에 여러 메시지를 삭제할 수 있는 메시지 ID입니다.: message shrink [expr]
메시지를 축소합니다. 여기서 expr
범위 표현식이며 Golang 슬라이스의 표현식인 begin:end
와 동일합니다. Begin 또는 End는 생략할 수 있습니다. 예를 들어 5:
는 ID가 5보다 크거나 같은 모든 메시지를 유지한다는 의미입니다.message show [id]
특정 메시지를 표시하고 Markdown으로 렌더링합니다. 기본값은 마지막 메시지를 표시하는 것입니다.message append
메시지를 추가합니다. 단축키 :append
로도 사용 가능합니다.message pin [id]
메시지를 고정합니다. 고정된 메시지는 메시지 자동 축소 메커니즘에 의해 자동으로 삭제되지 않으며 : message delete
명령으로도 삭제할 수 없습니다.message unpin [id]
메시지 고정을 해제합니다. guru
실행될 때마다 세션이 자동으로 생성됩니다. 세션 기록은 기본적으로 ~/.guru/session/
디렉터리에 저장됩니다. 시작할 때 --session-id, -s
사용하여 세션 ID를 지정하거나 --last
사용하여 마지막 세션을 복원할 수 있습니다. 지정된 세션 ID가 존재하지 않으면 자동으로 생성됩니다.
세션 관리는 다양한 기능을 제공합니다. 동일한 Guru REPL 내에서 세션을 생성하고 전환할 수 있습니다. 세션 관리의 가장 유용한 기능은 현재 세션을 중단하지 않고 하위 세션을 중첩할 수 있는 세션 스택입니다. 세션의 연속성은 매우 유용합니다. 예를 들어, 논문에 대해 이야기할 때 긴 대화에서 대화 메시지가 녹음될 것으로 기대하고 나중에 검토할 때 명확한 채팅 기록을 볼 수 있을 것입니다. Guru는 나중에 세션 기록 내보내기도 지원할 예정입니다.
guru > :session
Available commands:
:session new create a new session
:session remove delete a session
:session shrink shrink sessions
:session list list sessions
:session switch switch a session
:session history print history of current session
:session stack show the session stack
:session stack push create a new session, and stash the current
:session stack pop pop out current session
:session new
새 세션을 생성하며, 단축 별칭 :new
통해 트리거될 수도 있습니다.:session remove [sid]
세션을 제거합니다.:session shrink [expr]
세션을 축소합니다. 여기서 expr
:message shrink
명령과 유사하게 범위 표현식입니다.:session list
*
로 표시된 현재 세션과 함께 모든 세션을 나열합니다.:session switch [sid]
다른 세션으로 전환합니다.:session history
세션 기록을 표시합니다.:session stack
세션 스택 상태를 표시하며, 단축 별칭 :stack
통해 트리거될 수도 있습니다.:session stack push
새 세션을 생성하여 스택에 푸시합니다. 단축 별칭 >
통해 트리거할 수도 있습니다.:session stack pop
스택에서 현재 세션을 팝하며, 단축 별칭 <
을 통해 트리거될 수도 있습니다. >
는 :session stack push
의 별칭 역할을 하는 특수 명령입니다. 실행되면 새 세션이 생성되어 스택에 푸시됩니다. 명령 프롬프트에는 guru >>
와 같은 ">" 기호가 추가됩니다. <
:session stack pop
의 별칭입니다. 실행되면 스택의 최상위 세션이 팝업되고 명령 프롬프트에서 ">" 기호가 제거됩니다.
참고: 현재는
>
및<
명령만 명령 프롬프트에 영향을 미칩니다.:session stack push/pop
직접 사용하면 이 효과가 발생하지 않지만 앞으로 메커니즘을 개선할 계획입니다.
prompt repo
명령을 사용하면 프롬프트 저장소를 추가하거나 동기화할 수 있습니다. 현재 Guru는 awesome-chatgpt-prompts
및 awesome-chatgpt-prompts-zh
두 가지 고품질 프롬프트 저장소를 지원합니다. 사용자는 자신이 선호하는 저장소를 추가할 수도 있습니다.
처음 사용할 때 Cheatsheet
및 Committer
이외의 원격 프롬프트에서는 사용할 파일을 동기화하기 위해 :prompt repo sync
명령이 필요합니다. 동기화된 프롬프트 파일은 기본적으로 ~/.guru/prompt/
디렉터리에 저장됩니다.
guru > :prompt
Available commands:
:prompt act as act as a role
:prompt list list all prompts
:prompt repo sync sync prompts with remote repos
:prompt repo add add a remote repo
:prompt repo list list remote repos
Alias commands:
:prompts alias :prompts = :prompt list
:prompt
명령을 사용하면 awesome-chatgpt-prompts
저장소에 정의된 프롬프트를 사용할 수 있을 뿐만 아니라 자체 프롬프트 저장소를 추가하고 동기화할 수도 있습니다.
:prompt act as
프롬프트의 역할을 하며, 단축 별칭인 :act as
통해 실행할 수도 있습니다.:prompt list
로드된 모든 프롬프트 정보를 나열하며, 단축 별명인 :prompts
통해 트리거될 수도 있습니다.:prompt repo add/sync/list
프롬프트 저장소를 추가, 동기화 및 나열합니다. guru > :act as Linux Terminal
$
기호를 사용하여 시스템 명령을 실행할 수 있으며 명령의 출력은 다음 대화 라운드에서 ChatGPT에 제출됩니다. 이는 파일을 로드해야 할 때 특히 유용합니다.
$
기호 뒤에 명령이 없으면 Guru는 쉘 모드로 전환되고 명령 프롬프트는 guru $
로 변경됩니다. 이 모드에서는 입력하는 모든 명령이 셸에서처럼 실행되며 모든 출력은 다음 대화 라운드에서 ChatGPT에 제출됩니다.
쉘 모드에서 >
입력하면 대화 모드로 돌아갑니다.
:info
:set
실시간 매개변수 설정 dir /Users/shafreeck/.guru
filename
openai-api-key sk-************************************************
pin false
prompt
session-id chat-1680879639912-1ec4e509-af5b-4abb-9f4b-bebde2276d96
socks5 localhost:8804
stdin false
timeout 3m0s
------------------------------
chatgpt.frequency_penalty 0
chatgpt.max_tokens 0
chatgpt.model gpt-3.5-turbo
chatgpt.n 1
chatgpt.presence_penalty 0
chatgpt.stop
chatgpt.stream true
chatgpt.temperature 1
chatgpt.top_p 1
chatgpt.user
disable-auto-shrink false
executor
feedback false
non-interactive false
oneshot false
system
verbose false
:set chatgpt.temperature 0.5
집행자는 Guru의 가장 강력하고 독특한 기능입니다. Guru를 시작할 때 --executor, -e
인수를 사용하여 실행기를 지정할 수 있습니다. 각 채팅 라운드가 끝나면 Guru는 stdin을 통해 ChatGPT 출력을 실행자에게 전달합니다. --feedback
이 지정되면 실행기의 출력도 ChatGPT로 피드백됩니다.
실행자는 위에서 언급한 시스템 명령과 다릅니다. 시스템 명령은 shell
통한 데이터 입력 수단만 강화합니다. 실행기가 ChatGPT 출력을 처리하는 데 사용되는 동안 input
-> output
-> input
의 완전한 폐쇄 루프를 구현합니다. 이는 대화 중에 실행기를 사용하여 메시지를 처리할 수 있음을 의미합니다.
보안상의 이유로 각 실행자 호출에는 사용자 확인이 필요합니다.
가장 간단한 사용 시나리오는 shell
통해 ChatGPT가 반환한 명령을 실행하는 것입니다.
> guru cheat -e sh
다음 명령을 사용하여 ChatGPT 자체 대화를 수행할 수 있습니다.
> guru -e "guru --dir ./conversation --last" --feedback Hi
셀프 채팅의 원칙은 다른 guru
실행자로 사용하고, 첫 번째 guru
와의 혼동을 피하기 위해 두 번째 guru
의 --dir
자체 독립 디렉토리로 설정하고, --last
설정하여 세션이 시작될 때마다 세션을 복원하는 것입니다. 대화의 맥락을 유지하기 위해.