
생성 AI 모델에 대한 액세스를 제공하는 EMACS org 모드의 작은 모드. 현재 지원되고 있습니다
조직 모드 버퍼 내부
참고 : OpenAI API를 사용하려면 OpenAI 계정이 필요하며 API 토큰을 가져와야합니다. 내가 알 수있는 한, 자유 계층의 현재 사용 제한은 당신을 꽤 멀리 얻습니다.
#+begin_ai...#+end_ai 특수 블록 #+begin_ai
Is Emacs the greatest editor?
#+end_ai

Cc Cc 계속 입력하고 눌러 대화를 만들 수 있습니다. Cg 실행 요청을 방해합니다.
:image 키워드를 사용하여 이미지를 생성하십시오. 기본적으로 Dall · E-3을 사용합니다.
#+begin_ai :image :size 1024x1024
Hyper realistic sci-fi rendering of super complicated technical machine.
#+end_ai

다음 키워드를 사용하여 이미지 생성을 제어 할 수 있습니다.
:size <width>x<height> - 생성 할 이미지의 크기 (기본값 : 1024x1024):model <model> -사용할 모델 (기본값 : "dall-e-3" ):quality <quality> - 이미지의 품질 (선택 : hd , standard ):style <style> - 사용하는 스타일 (선택 : vivid 하고 natural )(해당 설정에 대한 자세한 내용은이 OpenAI 블로그 게시물을 참조하십시오.
사용자 정의 변수로 해당 변수의 기본값을 customize-variable 설정하거나 구성에 설정하여 다음을 사용자 정의 할 수 있습니다.
( setq org-ai-image-model " dall-e-3 " )
( setq org-ai-image-default-size " 1792x1024 " )
( setq org-ai-image-default-count 2 )
( setq org-ai-image-default-style 'vivid )
( setq org-ai-image-default-quality 'hd )
( setq org-ai-image-directory ( expand-file-name " org-ai-images/ " org-directory))
#+begin_ai...#+end_ai 특수 블록org-babel과 유사하게,이 블록은 AI 모델에 대한 입력을 구분하고 chatgpt의 경우)를 구분합니다. AI 채팅, 텍스트 완료 및 텍스트 -> 이미지 생성에 사용할 수 있습니다. 자세한 내용은 아래 옵션을 참조하십시오.
같은 블록을 만듭니다
#+begin_ai
Is Emacs the greatest editor?
#+end_ai
Cc Cc 누릅니다. 채팅 입력이 인라인으로 나타나고 응답이 완료되면 답장 등을 입력 할 수 있습니다. 아래 데모를 참조하십시오. AI 요청이 실행되는 동안 Cg 누르면 취소 할 수 있습니다.
시스템 프롬프트 및 사용 된 기타 매개 변수를 수정할 수도 있습니다. 시스템 프롬프트는 사용자의 입력 전에 주입하고 특정 스타일로 대답 할 모델을 "프라임"합니다. 예를 들어 할 수 있습니다.
#+begin_ai :max-tokens 250
[SYS]: Act as if you are a powerful medival king.
[ME]: What will you eat today?
#+end_ai
이로 인해 API 페이로드가 발생합니다
{
"messages" : [
{
"role" : " system " ,
"content" : " Act as if you are a powerful medival king. "
},
{
"role" : " user " ,
"content" : " What will you eat today? "
}
],
"model" : " gpt-4o-mini " ,
"stream" : true ,
"max_tokens" : 250 ,
"temperature" : 1.2
}예를 들어 멋진 chatgpt 프롬프트와 같은 몇 가지 신속한 아이디어를보십시오.
:image 플래그를 사용하여 이미지를 생성 할 때 이미지가 AI 블록 인라인 아래에 나타납니다. 이미지는 ~/org/org-ai-images/ 의 기본값을 기본적으로 org-ai-image-directory 내부에 (프롬프트와 함께) 저장합니다.
음성 입력을 사용하여 입력을 전사 할 수도 있습니다. Cc r 눌러 org-ai-talk-capture-in-org 기록하려면 녹음을 시작하십시오. 이를 위해서는 음성 인식을 설정해야합니다 (아래 참조). org-ai-talk-output-enable 할 수 있습니다.
#+begin_ai...#+end_ai 이 명령으로 채팅 부분을 수정하고 선택할 수 있습니다.
Cc <backspace> ( org-ai-kill-region-at-point )를 눌러 지점 아래 채팅 부분을 제거하십시오.org-ai-mark-region-at-point 그 지역을 포인트로 표시합니다.org-ai-mark-last-region 마지막 채팅 부분을 표시합니다. #+begin_ai ... 블록은 _ai 이후 언어 메이저 모드 이름을 추가하십시오. 예 : #+begin_ai markdown . 특히 Markdown의 경우 백 티크에서 코드를 올바르게 강조 표시하려면 설정할 수 있습니다 (setq markdown-fontify-code-blocks-natively t) . Markdown-Mode 패키지가 설치되어 있는지 확인하십시오. 이 트릭에 감사드립니다!
이 동작은 기본적으로 상호 작용이 채팅과 더 유사하도록 활성화됩니다. 긴 출력이있을 때는 성가시고 읽는 동안 버퍼 스크롤이 짜증납니다. 따라서 다음과 같이 비활성화 할 수 있습니다.
( setq org-ai-jump-to-end-of-block nil ) 삽입 된 텍스트를 "채우기" (setq org-ai-auto-fill t) 로 설정하십시오 ( fill-column 에 따라 라인을 자동으로 랩핑). 기본적으로 auto-fill-mode 좋아하지만 AI의 경우.
#+begin_ai...#+end_ai 블록은 다음 옵션을 사용할 수 있습니다.
기본적으로 AI 블록의 내용은 ChatGpt의 메시지로 해석됩니다. [ME]: 사용자와 관련이 있으며 [AI]: 모델의 응답과 관련이 있습니다. 선택적으로 [SYS]: <behavior> 입력 모델을 프라이밍하기 위해 블록을 시작할 수 있습니다 (아래의 org-ai-default-chat-system-prompt 참조).
:max-tokens number - 생성 할 최대 토큰 수 (기본값 : NIL, OpenAi의 기본값 사용):temperature number - 모델의 온도 (기본값 : 1):top-p number -Top_p (기본값 : 1):frequency-penalty number - 모델의 주파수 페널티 (기본값 : 0):presence-penalty 모델의 존재 페널티 (기본값 : 0):sys-everywhere 모든 사용자 메시지에 대한 시스템 프롬프트를 반복합니다 (기본값 : NIL) 동일한 주제 및 설정 (시스템 프롬프트, 온도 등)과 관련하여 대화 스레드가 많이 있고 모든 옵션을 반복하지 않으려면 조직 파일 범위 속성을 설정하거나 속성과 함께 조직 제목을 만들 수 있습니다. 서랍, 모든 #+begin_ai...#+end_ai 블록이 해당 제목 아래에서 설정을 상속받을 수 있도록합니다.
예 :
* Emacs (multiple conversations re emacs continue in this subtree)
:PROPERTIES:
:SYS: You are a emacs expert. You can help me by answering my questions. You can also ask me questions to clarify my intention.
:temperature: 0.5
:model: gpt-4o-mini
:END:
** Web programming via elisp
#+begin_ai
How to call a REST API and parse its JSON response?
#+end_ai
** Other emacs tasks
#+begin_ai...#+end_ai
* Python (multiple conversations re python continue in this subtree)
:PROPERTIES:
:SYS: You are a python programmer. Respond to the task with detailed step by step instructions and code.
:temperature: 0.1
:model: gpt-4
:END:
** Learning QUIC
#+begin_ai
How to setup a webserver with http3 support?
#+end_ai
** Other python tasks
#+begin_ai...#+end_ai
다음과 같은 사용자 정의 변수는 채팅을 구성하는 데 사용될 수 있습니다.
org-ai-default-chat-model (기본값 : "gpt-4o-mini" )org-ai-default-max-tokens 응답 시간 현재 4096을 초과 할 수 없습니다.이 값이 너무 작은 경우 답이 끊어 질 수 있습니다 (기본값 : NIL).org-ai-default-chat-system-prompt 모델을 "프라임"하는 방법. 이것은 사용자의 입력 전에 주입되는 프롬프트입니다. (기본값 : "You are a helpful assistant inside Emacs." )org-ai-default-inject-sys-prompt-for-all-messages . 때로는 모델이 어떻게 프라이밍되었는지를 "잊어 버립니다". 이것은 그것을 상기시키는 데 도움이 될 수 있습니다. (기본값 : nil ) AI 블록에 :image 옵션을 추가하면 프롬프트가 이미지 생성에 사용됩니다.
:image - 텍스트 대신 이미지를 생성합니다:size - 생성 할 이미지의 크기 (기본값 : 256x256, 512x512 또는 1024x1024).:n 생성 할 이미지 수 (기본값 : 1)다음과 같은 사용자 지정 변수는 이미지 생성을 구성하는 데 사용될 수 있습니다.
org-ai-image-directory 생성 된 이미지를 저장할 위치 (기본값 : ~/org/org-ai-images/ ) Dall-e와 유사하지만 사용합니다
#+begin_ai :sd-image
<PROMPT>
#+end_ai
#+이름으로 조직 모드 이미지에 라벨을 붙이고 다음을 참조하여 img2img를 실행할 수 있습니다.
#+begin_ai :sd-image :image-ref label1
forest, Gogh style
#+end_ai
MX Org-AI-SD-Clip은 Clip Interrogator의 Org-Mode에서 이전 이미지의 프롬프트를 추측하고 Kill Ring에 저장합니다.
MX Org-AI-SD-Deepdanbooru는 Deepdanbooru Interrogator의 Org-Mode에 대한 이전 이미지의 프롬프트를 추측하고 킬 링에 저장합니다.
Oobabooga/Text-Generation-Webui와 함께 제공되는 로컬 모델의 완료를 요청하려면 아래에 설명 된 설정 단계를 살펴보십시오.
그런 다음 API 서버를 시작합니다.
cd ~ /.emacs.d/org-ai/text-generation-webui
conda activate org-ai
python server.py --api --model SOME-MODEL A :local 키를 추가하고 Cc Cc 사용한 완료를 요청하면 블록이 OpenAI API 대신 로컬 API 서버로 전송됩니다. 예를 들어:
#+begin_ai :local
...
#+end_ai
이것은 org-ai-oobabooga-websocket-url 에 요청을 보내고 응답을 조직 버퍼로 스트리밍합니다.
AI 블록에 :completion 옵션을 추가하여 구형 완료 모델을 자극 할 수도 있습니다.
:completion - Chatgpt 모델을 사용하는 대신 완료 모델을 사용하십시오.:model - 사용할 모델, 모델 목록은 https://platform.openai.com/docs/models를 참조하십시오.이러한 매개 변수의 자세한 의미는 OpenAI API 문서를 참조하십시오.
다음 사용자 정의 변수는 텍스트 생성을 구성하는 데 사용될 수 있습니다.
org-ai-default-completion-model (기본 : "text-davinci-003" ) 기존 이미지를 입력으로 사용하여 더 유사한 이미지를 생성 할 수도 있습니다. org-ai-image-variation 명령은 이미지, 크기 및 카운트에 대한 파일 경로를 자랑하며 많은 이미지를 생성하고 현재 org-mode 버퍼 내부에 링크를 삽입합니다. 이미지는 org-ai-image-directory 내부에 저장됩니다. 아래 데모를 참조하십시오.
자세한 내용은 OpenAI 문서를 참조하십시오. 입력 이미지는 정사각형이어야하며 크기는 4MB 미만이어야합니다. 그리고 현재 명령 줄 도구 1 으로 사용 가능한 컬이 필요합니다.
org-ai org-mode 버퍼 외부에서도 사용할 수 있습니다. org-ai-global-mode 활성화하면 접두사 Cc Ma 여러 명령에 묶여 있습니다.
| 명령 | 키 바인딩 | 설명 |
|---|---|---|
org-ai-on-region | Cc Ma r | 선택한 텍스트에 대한 질문을하거나 AI에게 무언가를하도록 지시하십시오. 응답은 Org-Mode 버퍼로 열려 대화를 계속할 수 있습니다. 변수 org-ai-on-region-file (예 (setq org-ai-on-region-file (expand-file-name "org-ai-on-region.org" org-directory)) )를 연결합니다. 해당 버퍼가있는 파일. |
org-ai-summarize | Cc Ma s | 선택한 텍스트를 요약하십시오. |
org-ai-refactor-code | Cc Ma c | AI에게 선택한 코드를 변경하는 방법을 알려 주시면 변경 사항이 표시됩니다. |
org-ai-on-project | Cc Ma p | 프롬프트를 실행하고 여러 파일을 한 번에 수정 / 수정 / 수정하십시오. 사용 가능한 경우 발사체를 사용하면 현재 디렉토리로 돌아갑니다. |
org-ai-prompt | Cc Ma P | 텍스트를 사용자에게 프롬프트 한 다음 현재 버퍼에서 AI의 응답을 인쇄하십시오. |
org-ai-switch-chat-model | Cc Ma m | 대화식으로 org-ai-default-chat-model 변경합니다 |
org-ai-open-account-usage-page | Cc Ma $ | https://platform.openai.com/account/usage를 열어서 얼마나 많은 돈을 태웠는지 확인하십시오. |
org-ai-open-request-buffer | Cc Ma ! | url 요청 버퍼를 엽니 다. 무언가가 작동하지 않으면 살펴 보는 것이 도움이 될 수 있습니다. |
org-ai-talk-input-toggle | Cc Ma t | 일반적으로 다른 프롬프트 명령에 대한 음성 입력을 활성화합니다. |
org-ai-talk-output-toggle | Cc Ma T | 일반적으로 음성 출력을 활성화합니다. |
org-ai-on-project buffer를 사용하면 프로젝트의 파일에서 명령을 실행할 수 있습니다. 또는 해당 파일의 선택된 텍스트 만 있습니다. 예를 들어 프로젝트의 readme를 선택하고 "무엇이 무엇인지?" 또는 코드가 귀하에게 설명되어 있습니다. 코드 변경을 요청할 수도 있으며, 이는 차이를 생성합니다. Copilot을 사용하여 코드만을 활성화 할 수 있다고 생각하는 사람을 알고 있다면 여기에서 지적하십시오.
org-ai-on-project 명령을 실행하면 여러 파일 선택을 선택하고 (파일 내부의 하위 지역을 선택) 선택한 다음 프롬프트를 실행할 수있는 별도의 버퍼가 열립니다.

"코드 수정"을 비활성화하면 파일 내용이 모두 프롬프트에 나타나는 org-ai-on-region 실행하는 것과 유사합니다.
"Codify Code"를 활성화하면 AI에 코드를 수정하거나 리팩터링하도록 요청할 수 있습니다. 기본적으로 ( "요청 diffs") 비활성화 된 경우, 선택한 모든 파일/영역에 대한 새 코드를 생성하라는 메시지가 표시된 다음 파일 당 차이를보고 적용하기로 결정할 수 있습니다. "요청 diffs"활성화를 사용하면 AI는 통합 된 Diff를 직접 생성하여 적용 할 수 있습니다.
이름이 지정된 소스 블록이 주어졌습니다
#+name: sayhi
#+begin_src shell
echo "Hello there"
#+end_src
우리는 그것을 이름으로 참조하려고 시도 할 수 있지만 작동하지 않습니다.
#+begin_ai
[SYS]: You are a mimic. Whenever I say something, repeat back what I say to you. Say exactly what I said, do not add anything.
[ME]: <<sayhi()>>
[AI]: <<sayhi()>>
[ME]:
#+end_ai
함께 :noweb yes
#+begin_ai :noweb yes
[SYS]: You are a mimic. Whenever I say something, repeat back what I say to you. Say exactly what I said, do not add anything.
[ME]: <<sayhi()>>
[AI]: Hello there.
[ME]:
#+end_ai
또한 org-ai-noweb: yes 로 noweb 확장을 트리거 할 수도 있습니다.
API로 전송 될 때 문서가 확장 될 내용을 확인하려면 org-ai-expand-block 실행하십시오.
이것은 해킹이지만 정말 잘 작동합니다.
블록을 만듭니다
#+name: identity
#+begin_src emacs-lisp :var x="fill me in"
(format "%s" x)
#+end_src
우리는 그것을 호출하고 noweb 매개 변수 (LISP를 지원하는)를 코드로 평가할 수 있습니다.
#+begin_ai :noweb yes
Tell me some 3, simple ways to improve this dockerfile
<<identity(x=(quelpa-slurp-file "~/code/ibr-api/Dockerfile"))>>
[AI]: 1. Use a more specific version of Python, such as "python:3.9.6-buster" instead of "python:3.9-buster", to ensure compatibility with future updates.
2. Add a cleanup step after installing poetry to remove any unnecessary files or dependencies, thus reducing the size of the final image.
3. Use multi-stage builds to separate the build environment from the production environment, thus reducing the size of the final image and increasing security. For example, the first stage can be used to install dependencies and build the code, while the second stage can contain only the final artifacts and be used for deployment.
[ME]:
#+end_ai
Org-ai는 Melpa : https://melpa.org/#/org-ai에 있습니다. 패키지 아카이브에 Melpa를 추가 한 경우
( require 'package )
( add-to-list 'package-archives '( " melpa " . " http://melpa.org/packages/ " ) t )
( package-initialize )다음과 같이 설치할 수 있습니다.
( use-package org-ai
:ensure t
:commands (org-ai-mode
org-ai-global-mode)
:init
( add-hook 'org-mode-hook # 'org-ai-mode ) ; enable org-ai in org-mode
(org-ai-global-mode) ; installs global keybindings on C-c M-a
:config
( setq org-ai-default-chat-model " gpt-4 " ) ; if you are on the gpt-4 beta:
(org-ai-install-yasnippets)) ; if you are using yasnippet and want `ai` snippets
( straight-use-package
'(org-ai :type git :host github :repo " rksm/org-ai "
:local-repo " org-ai "
:files ( " *.el " " README.md " " snippets " )))이 저장소 체크 아웃.
git clone
https://github.com/rksm/org-ai 그런 다음 use-package 사용하는 경우 :
( use-package org-ai
:ensure t
:load-path ( lambda () " path/to/org-ai " ))
; ; ...rest as above...
또는 require 으로 :
( package-install 'websocket )
( add-to-list 'load-path " path/to/org-ai " )
( require 'org )
( require 'org-ai )
( add-hook 'org-mode-hook # 'org-ai-mode )
(org-ai-global-mode)
( setq org-ai-default-chat-model " gpt-4 " ) ; if you are on the gpt-4 beta:
(org-ai-install-yasnippets) ; if you are using yasnippet and want `ai` snippets구성에서 API 토큰을 직접 설정할 수 있습니다.
( setq org-ai-openai-api-token " <ENTER YOUR API TOKEN HERE> " )
또는 org-ai API 키를 검색하기위한 auth-source 지원합니다. 비밀을 형식으로 저장할 수 있습니다
machine api.openai.com login org-ai password <your-api-key>
~/authinfo.gpg 파일에서. 이것이 존재하는 경우, ORG-AI는이 메커니즘을 사용하여 요청이 이루어질 때 토큰을 검색합니다. org-ai auth-source 에서 키를 검색하려고하지 않으려면 org-ai 로드하기 전에 org-ai-use-auth-source nil 로 설정할 수 있습니다.
Mx customize-variable 과 대화식 또는 구성에 추가하여 이러한 변수를 사용자 정의하여 Azure로 전환 할 수 있습니다.
( setq org-ai-service 'azure-openai
org-ai-azure-openai-api-base " https://your-instance.openai.azure.com "
org-ai-azure-openai-deployment " azure-openai-deployment-name "
org-ai-azure-openai-api-version " 2023-07-01-preview " ) API 자격 증명을 저장하려면 위의 Authinfo 지침을 따르지만 org-ai-azure-openai-api-base 기계 이름으로 사용하십시오.
사용 가능한 모델 목록은 perplexity.ai 문서를 참조하십시오.
구성에서 기본 서비스를 전환하십시오.
( setq org-ai-service 'perplexity .ai)
( setq org-ai-default-chat-model " llama-3-sonar-large-32k-online " )또는 블록 당 :
#+begin_ai :service perplexity.ai :model llama-3-sonar-large-32k-online
[ME]: Tell me fun facts about Emacs.
#+end_ai
인증의 경우 machine api.perplexity.ai login org-ai password pplx-*** authinfo.gpg 또는 set org-ai-openai-api-token .
참고 : 현재 perplexity.ai는 API를 통한 참조/링크에 액세스하지 않으므로 EMACS는 참조를 표시 할 수 없습니다. 그들은 그 달리기를위한 베타 프로그램을 가지고 있으며, 이것이 일반적으로 곧 사용할 수 있기를 바랍니다.
위와 비슷합니다. 예를 들어
#+begin_ai :service anthropic :model claude-3-opus-20240229
[ME]: Tell me fun facts about Emacs.
#+end_ai
인류 모델이 여기에 있습니다. 현재 org-ai-anthropic-api-version 통해 설정된 API 버전은 하나뿐입니다. 다른 버전이 나오면 여기에서 찾을 수 있습니다.
API 토큰 용 machine api.anthropic.com login org-ai password sk-ant-*** authinfo.gpg .
이 설정 단계는 선택 사항입니다. 음성 입력 / 출력을 사용하지 않으려면이 섹션을 건너 뛸 수 있습니다.
참고 : ORG-AI에 대한 개인 구성은이 요점에서 찾을 수 있습니다. 작업 속삭임 설정이 포함되어 있습니다.
이것은 MacOS 및 Linux에서 테스트되었습니다. Windows 컴퓨터를 가진 사람, 이것을 테스트하고 그것을 작동시키기 위해해야 할 일을 알려주십시오 (감사합니다!).
음성 입력은 Whisper.el 및 ffmpeg 사용합니다. 레포를 직접 복제하거나 직접 사용하여 설치하려면 EL을 사용해야합니다.
brew install ffmpeg ) 또는 sudo apt install ffmpeg .git clone https://github.com/natrys/whisper.el path/to/whisper.el이제 EMACS 내부로로드 할 수 있어야합니다.
( use-package whisper
:load-path " path/to/whisper.el "
:bind ( " M-s-r " . whisper-run))이제로드 :
( use-package greader :ensure )
( require 'whisper )
( require 'org-ai-talk )
; ; macOS speech settings, optional
( setq org-ai-talk-say-words-per-minute 210 )
( setq org-ai-talk-say-voice " Karen " )MacOS에서는 두 가지를 더해야합니다.
tccutil 도우미를 사용할 수 있습니다.
git clone https://github.com/DocSystem/tccutil
cd tccutil
sudo python ./tccutil.py -p /Applications/Emacs.app -e --microphone 이제 EMACS 쉘 내에서 ffmpeg -f avfoundation -i :0 output.mp3 실행하면 abort trap: 6 오류.
(tccutil.py에 대한 대안 으로이 문제에 언급 된 방법을 참조하십시오.)
ffmpeg -f avfoundation -list_devices true -i "" 의 출력을 사용하여 오디오 입력 장치 (setq whisper--ffmpeg-input-device ":0") 나열한 다음 whisper.el을 말할 수 있습니다. :0 은 마이크 인덱스입니다. 위의 명령의 출력을 참조하십시오.
나는 당신이 대화식으로 마이크를 선택할 수있는 EMACS 도우미를 만들었습니다. 이 요점을 참조하십시오.
내 전체 음성 활성화 구성은 다음과 같습니다.
( use-package whisper
:load-path ( lambda () ( expand-file-name " lisp/other-libs/whisper.el " user-emacs-directory))
:config
( setq whisper-model " base "
whisper-language " en "
whisper-translate nil )
( when *is-a-mac*
(rk/select-default-audio-device " Macbook Pro Microphone " )
( when rk/default-audio-device)
( setq whisper--ffmpeg-input-device ( format " : %s " rk/default-audio-device)))) MacOS에서 Whisper 대신 내장 Siri의 명령을 사용할 수도 있습니다. 이를 가능하게하려면 Preferences -> Keyboard -> Dictation 으로 이동하여 활성화하고 바로 가기를 설정하십시오. 기본값은 Ctrl-Ctrl입니다.
Way (Defun Whisper- 점검 및 실행)는 Win10에서 작동하지 않습니다 ( #66 참조).
해결 방법은 Whisper.cpp 및 모델을 수동으로 설치하고 패치하는 것입니다.
( defun whisper--check-install-and-run ( buffer status )
(whisper--record-audio)) 비 마코스 시스템의 음성 출력은 아래에있는 espeak를 사용하여 음성을 종합하는 Greader 패키지 사용의 기본값을 기본적으로합니다. Greader를 수동으로 설치해야합니다 (예 : Mx package-install 통해). 그 시점부터 "그냥 작동"해야합니다. 일부 텍스트를 선택하고 Mx org-ai-talk-read-region 호출하여 테스트 할 수 있습니다.
안정적인 확산을위한 API는 안정적인 확산-부부 프로젝트와 함께 호스팅 될 수 있습니다. 플랫폼의 설치 단계를 거치고 API-only 서버를 시작하십시오.
cd path/to/stable-diffusion-webui
./webui.sh --nowebui 이렇게하면 기본적으로 http://127.0.0.1:7861에서 서버가 시작됩니다. ORG-AI와 함께 사용하려면 org-ai-sd-endpoint-base 설정해야합니다.
( setq org-ai-sd-endpoint-base " http://localhost:7861/sdapi/v1/ " )다른 곳에서 호스팅 된 서버를 사용하는 경우 해당 URL을 그에 따라 변경하십시오.
버전 0.4 ORG-AI는 Oobabooga/Text-Generation-Webui와 함께 제공되는 로컬 모델을 지원합니다. 시스템에 설정하려면 설치 지침을 참조하십시오.
다음은 우분투 22.04에서 테스트 된 설치 연습입니다. 그것은 미니콘다 또는 아나콘다뿐만 아니라 GIT-LF를 설치할 것이라고 가정합니다.
conda create -n org-ai python=3.10.9
conda activate org-ai
pip3 install torch torchvision torchaudiomkdir -p ~ /.emacs.d/org-ai/
cd ~ /.emacs.d/org-ai/
git clone https://github.com/oobabooga/text-generation-webui
cd text-generation-webui
pip install -r requirements.txt Oobabooga/Text-Generation-Webui는 여러 언어 모델을 지원합니다. 일반적으로 Huggingface에서 설치합니다. 예를 들어, CodeLlama-7b-Instruct 모델을 설치하려면 :
cd ~ /.emacs.d/org-ai/text-generation-webui/models
git clone [email protected]:codellama/CodeLlama-7b-Instruct-hf cd ~ /.emacs.d/org-ai/text-generation-webui
conda activate org-ai
python server.py --api --model CodeLlama-7b-Instruct-hf 하드웨어 및 사용 된 모델에 따라 서버 매개 변수를 조정 해야하는 것 (예를 들어 --load-in-8bit 사용하여 GPU가없는 경우 메모리 사용량 또는 --cpu 줄입니다.
이제 #+begin_ai 블록에 :local 옵션을 추가하여 ORG-AI와 함께 로컬 모델을 사용할 수 있어야합니다.
#+begin_ai :local
Hello CodeLlama!
#+end_ai
아니요, OpenAI는 설정하기 가장 쉽지만 (API 키 만 필요) 로컬 모델도 사용할 수 있습니다. 위의 Oobabooga/Text-Generation-Webui와 함께 안정적인 확산 및 로컬 LLM을 사용하는 방법을보십시오. 무인 Claude와 Perplexity.ai도 지원됩니다. 지원되는 다른 서비스에 대해서는 문제 또는 PR을 열어주십시오. 응답이 느려질 수 있지만 관심이 충분하면 지원을 추가 할 것입니다.
gptel 패키지는 OpenAi ChatGpt API에 대한 대체 인터페이스를 제공합니다 : https://github.com/karthink/gptel
이 프로젝트가 유용하다고 생각되면 후원을 고려하십시오. 감사합니다!
참고 : Currenly 이미지 변형 구현에는 명령 줄 CURL을 설치해야합니다. 그 이유는 OpenAI API가 Multipart/Form-Data 요청을 기대하고 EMACS 내장 url-retrieve 그것을 지원하지 않기 때문입니다 (적어도 나는 방법을 알아 내지 못했습니다). request.el 으로 전환하는 것이 더 나은 대안 일 수 있습니다. 기여에 관심이 있다면 PR은 매우 환영합니다! ↩