
Mode minor untuk mode org EMACS yang menyediakan akses ke model AI generatif. Saat ini didukung adalah
Di dalam buffer mode org Anda bisa
Catatan: Untuk menggunakan API OpenAI, Anda akan memerlukan akun OpenAI dan Anda perlu mendapatkan token API. Sejauh yang saya tahu, batas penggunaan saat ini untuk tingkat gratis membuat Anda cukup jauh.
#+begin_ai...#+end_ai blok khusus #+begin_ai
Is Emacs the greatest editor?
#+end_ai

Anda dapat terus mengetik dan menekan Cc Cc untuk membuat percakapan. Cg akan mengganggu permintaan berjalan.
Gunakan kata kunci :image untuk menghasilkan gambar. Ini menggunakan Dall · E-3 secara default.
#+begin_ai :image :size 1024x1024
Hyper realistic sci-fi rendering of super complicated technical machine.
#+end_ai

Anda dapat menggunakan kata kunci berikut untuk mengontrol pembuatan gambar:
:size <width>x<height> - Ukuran gambar yang akan dihasilkan (default: 1024x1024):model <model> -Model yang akan digunakan (default: "dall-e-3" ):quality <quality> - Kualitas gambar (pilihan: hd , standard ):style <style> - Gaya untuk digunakan (pilihan: vivid , natural )(Untuk informasi lebih lanjut tentang pengaturan tersebut, lihat posting blog OpenAI ini.
Anda dapat menyesuaikan default untuk variabel-variabel tersebut dengan customize-variable atau dengan mengaturnya di konfigurasi Anda:
( 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 blok khususMirip dengan org-Babel, blok-blok ini membatasi input (dan untuk chatgpt juga output) untuk model AI. Anda dapat menggunakannya untuk obrolan AI, penyelesaian teks dan teks -> pembuatan gambar. Lihat opsi di bawah untuk informasi lebih lanjut.
Buat blok seperti
#+begin_ai
Is Emacs the greatest editor?
#+end_ai
dan tekan Cc Cc . Input obrolan akan muncul inline dan setelah respons selesai, Anda dapat memasukkan balasan Anda dan sebagainya. Lihat demo di bawah ini. Anda dapat menekan Cg saat permintaan AI berjalan untuk membatalkannya.
Anda juga dapat memodifikasi prompt sistem dan parameter lain yang digunakan. Sistem prompt disuntikkan sebelum input pengguna dan "memperoleh model untuk menjawab dengan gaya tertentu. Misalnya Anda dapat melakukannya:
#+begin_ai :max-tokens 250
[SYS]: Act as if you are a powerful medival king.
[ME]: What will you eat today?
#+end_ai
Ini akan menghasilkan muatan API seperti
{
"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
}Untuk beberapa ide cepat, lihat misalnya petunjuk chatgpt yang mengagumkan.
Saat menghasilkan gambar menggunakan bendera :image , gambar akan muncul di bawah blok AI inline. Gambar akan disimpan (bersama dengan prompt mereka) di dalam org-ai-image-directory yang default ke ~/org/org-ai-images/ .
Anda juga dapat menggunakan input ucapan untuk menuliskan input. Tekan Cc r untuk org-ai-talk-capture-in-org untuk mulai merekam. Perhatikan bahwa ini akan mengharuskan Anda untuk mengatur pengenalan ucapan (lihat di bawah). Output ucapan dapat diaktifkan dengan org-ai-talk-output-enable .
Di dalam #+begin_ai...#+end_ai Anda dapat memodifikasi dan memilih bagian obrolan dengan perintah ini:
Cc <backspace> ( org-ai-kill-region-at-point ) untuk menghapus bagian obrolan di bawah titik.org-ai-mark-region-at-point akan menandai wilayah pada titik.org-ai-mark-last-region akan menandai bagian obrolan terakhir. Untuk menerapkan sintaks yang disorot ke #+begin_ai ... blok cukup tambahkan nama mode utama bahasa setelah _ai . Misalnya #+begin_ai markdown . Untuk Markdown khususnya, untuk kemudian juga menyorot kode dengan benar di dalam backticks, Anda dapat mengatur (setq markdown-fontify-code-blocks-natively t) . Pastikan bahwa Anda juga memiliki paket mode-markdown diinstal. Terima kasih @tavisrudd untuk trik ini!
Perilaku ini diaktifkan secara default sehingga interaksi lebih mirip dengan obrolan. Ini bisa menjengkelkan saat output panjang hadir dan gulungan buffer saat Anda membaca. Jadi Anda dapat menonaktifkan ini dengan:
( setq org-ai-jump-to-end-of-block nil ) Set (setq org-ai-auto-fill t) untuk "mengisi" (secara otomatis membungkus garis menurut fill-column ) teks yang dimasukkan. Pada dasarnya seperti auto-fill-mode tetapi untuk AI.
Blok #+begin_ai...#+end_ai dapat mengambil opsi berikut.
Secara default, konten blok AI ditafsirkan sebagai pesan untuk chatgpt. Teks berikut [ME]: dikaitkan dengan pengguna, teks berikut [AI]: dikaitkan sebagai respons model. Secara opsional Anda dapat memulai blok dengan input [SYS]: <behavior> untuk membuat model (lihat org-ai-default-chat-system-prompt di bawah).
:max-tokens number - Jumlah token maksimum untuk menghasilkan (default: nil, gunakan default openai):temperature number - suhu model (default: 1):top-p number - Top_p dari model (default: 1):frequency-penalty number - penalti frekuensi model (default: 0):presence-penalty - Hukuman keberadaan model (default: 0):sys-everywhere - ulangi prompt sistem untuk setiap pesan pengguna (default: nil) Jika Anda memiliki banyak utas percakapan yang berbeda mengenai topik dan pengaturan yang sama (Sistem Prompt, Suhu, dll) dan Anda tidak ingin mengulangi semua opsi, Anda dapat mengatur properti lingkup file org atau membuat judul org dengan properti dengan properti Laci, sehingga semua #+begin_ai...#+end_ai blok di bawah judul itu akan mewarisi pengaturan.
Contoh:
* 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
Variabel kustom berikut dapat digunakan untuk mengonfigurasi obrolan:
org-ai-default-chat-model (default: "gpt-4o-mini" )org-ai-default-max-tokens berapa lama responsnya seharusnya. Saat ini tidak dapat melebihi 4096. Jika nilai ini terlalu kecil, jawaban mungkin terputus (default: nil)org-ai-default-chat-system-prompt bagaimana "prime" model. Ini adalah prompt yang disuntikkan sebelum input pengguna. (Default: "You are a helpful assistant inside Emacs." )org-ai-default-inject-sys-prompt-for-all-messages apakah untuk mengulangi prompt sistem untuk setiap pesan pengguna. Terkadang model "lupa" bagaimana itu prima. Ini dapat membantu mengingatkannya. (Default: nil ) Saat Anda menambahkan opsi :image ke blok AI, prompt akan digunakan untuk pembuatan gambar.
:image - menghasilkan gambar, bukan teks:size - Ukuran gambar yang akan dihasilkan (default: 256x256, bisa 512x512 atau 1024x1024):n - Jumlah gambar yang akan dihasilkan (default: 1)Variabel khusus berikut dapat digunakan untuk mengonfigurasi pembuatan gambar:
org-ai-image-directory -tempat menyimpan gambar yang dihasilkan (default: ~/org/org-ai-images/ ) Mirip dengan Dall-e tetapi gunakan
#+begin_ai :sd-image
<PROMPT>
#+end_ai
Anda dapat menjalankan IMG2IMG dengan memberi label gambar mode org Anda dengan #+nama dan merujuknya dengan: Image-Ref dari blok org-AI Anda.
#+begin_ai :sd-image :image-ref label1
forest, Gogh style
#+end_ai
MX org-ai-sd-klip menebak prompt gambar sebelumnya pada mode org oleh interogator klip dan menyimpannya di cincin membunuh.
MX org-ai-sd-deepdanbooru menebak prompt gambar sebelumnya pada mode org oleh interogator deepdanbooru dan menyimpannya di cincin pembunuhan.
Untuk meminta penyelesaian dari model lokal yang dilayani dengan oobabooga/teks-generasi-webui, melalui langkah-langkah pengaturan yang dijelaskan di bawah ini
Kemudian mulailah server API:
cd ~ /.emacs.d/org-ai/text-generation-webui
conda activate org-ai
python server.py --api --model SOME-MODEL Saat Anda menambahkan :local ke blok org-AI dan meminta penyelesaian dengan Cc Cc , blok akan dikirim ke server API lokal alih-alih API OpenAI. Misalnya:
#+begin_ai :local
...
#+end_ai
Ini akan mengirimkan permintaan ke org-ai-oobabooga-websocket-url dan mengalirkan respons ke buffer org.
Model penyelesaian yang lebih lama juga dapat diminta dengan menambahkan :completion ke blok AI.
:completion - alih -alih menggunakan model chatgpt, gunakan model penyelesaian:model - model mana yang akan digunakan, lihat https://platform.openai.com/docs/models untuk daftar modelUntuk makna terperinci dari parameter -parameter tersebut, lihat dokumentasi API OpenAI.
Variabel khusus berikut dapat digunakan untuk mengonfigurasi pembuatan teks:
org-ai-default-completion-model (default: "text-davinci-003" ) Anda juga dapat menggunakan gambar yang ada sebagai input untuk menghasilkan gambar yang lebih mirip. Perintah org-ai-image-variation akan meminta jalur file ke gambar, ukuran dan hitungan dan kemudian akan menghasilkan banyak gambar dan memasukkan tautan ke dalamnya di dalam buffer org-mode saat ini. Gambar akan disimpan di dalam org-ai-image-directory . Lihat demo di bawah ini.
Untuk informasi lebih lanjut, lihat dokumentasi OpenAI. Gambar input harus persegi dan ukurannya harus kurang dari 4MB. Dan saat ini Anda membutuhkan ikal yang tersedia sebagai alat baris perintah 1 .
org-ai juga dapat digunakan di luar buffer org-mode . Saat Anda mengaktifkan org-ai-global-mode , awalan Cc Ma akan terikat pada sejumlah perintah:
| memerintah | Keybinding | keterangan |
|---|---|---|
org-ai-on-region | Cc Ma r | Ajukan pertanyaan tentang teks yang dipilih atau beri tahu AI untuk melakukan sesuatu dengannya. Responsnya akan dibuka dalam buffer mode org sehingga Anda dapat melanjutkan percakapan. Menetapkan variabel org-ai-on-region-file (misalnya (setq org-ai-on-region-file (expand-file-name "org-ai-on-region.org" org-directory)) ) akan bergaul file dengan buffer itu. |
org-ai-summarize | Cc Ma s | Merangkum teks yang dipilih. |
org-ai-refactor-code | Cc Ma c | Beri tahu AI cara mengubah kode yang dipilih, buffer diff akan muncul dengan perubahan. |
org-ai-on-project | Cc Ma p | Jalankan prompt dan ubah / refactor beberapa file sekaligus. Akan menggunakan proyektil jika tersedia, jatuh kembali ke direktori saat ini jika tidak. |
org-ai-prompt | Cc Ma P | Minta pengguna untuk teks dan kemudian cetak respons AI dalam buffer saat ini. |
org-ai-switch-chat-model | Cc Ma m | Secara interaktif mengubah org-ai-default-chat-model |
org-ai-open-account-usage-page | Cc Ma $ | Buka https://platform.openai.com/account/usage untuk melihat berapa banyak uang yang telah Anda bakar. |
org-ai-open-request-buffer | Cc Ma ! | Membuka buffer permintaan url . Jika sesuatu tidak berhasil, dapat membantu untuk melihatnya. |
org-ai-talk-input-toggle | Cc Ma t | Umumnya mengaktifkan input ucapan untuk perintah prompt yang berbeda. |
org-ai-talk-output-toggle | Cc Ma T | Umumnya mengaktifkan output ucapan. |
Menggunakan buffer org-ai-on-project memungkinkan Anda menjalankan perintah pada file dalam suatu proyek, alternatifnya juga hanya pada teks yang dipilih dalam file-file tersebut. Anda dapat misalnya memilih readme proyek dan bertanya "tentang apa itu semua?" atau memiliki kode yang dijelaskan kepada Anda. Anda juga dapat meminta perubahan kode, yang akan menghasilkan diff. Jika Anda tahu bahwa hanya berpikir hanya VS Code dengan Copilot yang diaktifkan dapat melakukannya, arahkan mereka di sini.
Menjalankan perintah org-ai-on-project akan membuka buffer terpisah yang memungkinkan Anda memilih memilih beberapa file (dan secara opsional memilih sub-wilayah di dalam file) dan kemudian menjalankan prompt di atasnya.

Jika Anda menonaktifkan "memodifikasi kode", efeknya mirip dengan menjalankan org-ai-on-region hanya bahwa konten file semua muncul di prompt.
Dengan "Modify Code" diaktifkan, Anda dapat meminta AI untuk memodifikasi atau refactor kode. Secara default ("Request Diffs") dinonaktifkan, kami akan meminta untuk menghasilkan kode baru untuk semua file/wilayah yang dipilih dan Anda kemudian dapat melihat diff per file dan memutuskan untuk menerapkannya atau tidak. Dengan aktif "Request Diffs", AI akan diminta untuk secara langsung membuat diff terpadu yang kemudian dapat diterapkan.
Diberi blok sumber bernama
#+name: sayhi
#+begin_src shell
echo "Hello there"
#+end_src
Kami dapat mencoba merujuknya dengan nama, tetapi tidak berhasil.
#+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
Dengan :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
Anda juga dapat memicu ekspansi Noweb dengan org-ai-noweb: yes heading proprty di mana saja di judul induk (header args lebih diutamakan).
Untuk melihat apa yang akan diperluas dokumen Anda saat dikirim ke API, jalankan org-ai-expand-block .
Ini adalah peretasan tetapi bekerja dengan sangat baik.
Buat blok
#+name: identity
#+begin_src emacs-lisp :var x="fill me in"
(format "%s" x)
#+end_src
Kita dapat memohon dan membiarkan parameter noweb (yang mendukung LISP) mengevaluasi sebagai kode
#+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 ada di Melpa: https://melpa.org/#/org-ai. Jika Anda telah menambahkan Melpa ke arsip paket Anda
( require 'package )
( add-to-list 'package-archives '( " melpa " . " http://melpa.org/packages/ " ) t )
( package-initialize )Anda dapat menginstalnya dengan:
( 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 " )))Lihat repositori ini.
git clone
https://github.com/rksm/org-ai Kemudian, jika Anda menggunakan use-package :
( use-package org-ai
:ensure t
:load-path ( lambda () " path/to/org-ai " ))
; ; ...rest as above...
atau hanya dengan 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` snippetsAnda dapat secara langsung mengatur token API Anda di konfigurasi Anda:
( setq org-ai-openai-api-token " <ENTER YOUR API TOKEN HERE> " )
Atau, org-ai mendukung auth-source untuk mengambil kunci API Anda. Anda dapat menyimpan rahasia dalam format
machine api.openai.com login org-ai password <your-api-key>
dalam file ~/authinfo.gpg Anda. Jika ini ada, org-AI akan menggunakan mekanisme ini untuk mengambil token saat permintaan dibuat. Jika Anda tidak ingin org-ai mencoba mengambil kunci dari auth-source , Anda dapat mengatur org-ai-use-auth-source ke nil sebelum memuat org-ai .
Anda dapat beralih ke Azure dengan menyesuaikan variabel-variabel ini, baik secara interaktif dengan Mx customize-variable atau dengan menambahkannya ke konfigurasi Anda:
( 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 " ) Untuk menyimpan kredensial API, ikuti instruksi authinfo di atas tetapi gunakan org-ai-azure-openai-api-base sebagai nama mesin.
Untuk daftar model yang tersedia, lihat dokumentasi perplexity.ai.
Entah beralih layanan default di konfigurasi Anda:
( setq org-ai-service 'perplexity .ai)
( setq org-ai-default-chat-model " llama-3-sonar-large-32k-online " )atau per blok:
#+begin_ai :service perplexity.ai :model llama-3-sonar-large-32k-online
[ME]: Tell me fun facts about Emacs.
#+end_ai
Untuk otentikasi memiliki entri seperti machine api.perplexity.ai login org-ai password pplx-*** di authinfo.gpg Anda atau set org-ai-openai-api-token .
CATATAN: Saat ini kebingungan.ai tidak memberikan akses ke referensi/tautan melalui API sehingga Emacs tidak akan dapat menampilkan referensi. Mereka memiliki program beta untuk menjalankan itu dan saya yakin berharap ini akan segera tersedia.
Mirip dengan yang di atas. Misalnya
#+begin_ai :service anthropic :model claude-3-opus-20240229
[ME]: Tell me fun facts about Emacs.
#+end_ai
Model antropik ada di sini. Saat ini hanya ada satu versi API yang ditetapkan melalui org-ai-anthropic-api-version . Jika versi lain keluar, Anda dapat menemukannya di sini.
Untuk token API menggunakan machine api.anthropic.com login org-ai password sk-ant-*** di authinfo.gpg Anda.
Langkah -langkah pengaturan ini opsional. Jika Anda tidak ingin menggunakan input / output ucapan, Anda dapat melewatkan bagian ini.
Catatan: Konfigurasi pribadi saya untuk org-AI dapat ditemukan di inti ini. Ini berisi pengaturan bisikan yang berfungsi.
Ini telah diuji pada macOS dan Linux. Seseorang dengan komputer Windows, tolong uji ini dan beri tahu saya apa yang perlu dilakukan untuk membuatnya bekerja (terima kasih!).
Input ucapan menggunakan Whisper.el dan ffmpeg . Anda perlu mengkloning repo secara langsung atau menggunakan lurus.el untuk menginstalnya.
brew install ffmpeg di MacOS) atau sudo apt install ffmpeg di Linux.git clone https://github.com/natrys/whisper.el path/to/whisper.elAnda sekarang harus dapat memuatnya di dalam Emacs:
( use-package whisper
:load-path " path/to/whisper.el "
:bind ( " M-s-r " . whisper-run))Sekarang juga muat:
( 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 " )Di macOS Anda perlu melakukan dua hal lagi:
Anda dapat menggunakan pembantu TCCUTIL:
git clone https://github.com/DocSystem/tccutil
cd tccutil
sudo python ./tccutil.py -p /Applications/Emacs.app -e --microphone Ketika Anda sekarang menjalankan ffmpeg -f avfoundation -i :0 output.mp3 dari dalam shell emacs, seharusnya tidak ada abort trap: 6 kesalahan.
(Sebagai alternatif untuk tccutil.py lihat metode yang disebutkan dalam edisi ini.)
Anda dapat menggunakan output ffmpeg -f avfoundation -list_devices true -i "" untuk mendaftar perangkat input audio dan kemudian memberi tahu whisper.el tentang hal itu: (setq whisper--ffmpeg-input-device ":0") . :0 adalah indeks mikrofon, lihat output perintah di atas untuk menggunakan yang lain.
Saya telah membuat penolong Emacs yang memungkinkan Anda memilih mikrofon secara interaktif. Lihat intisari ini.
Pidato lengkap saya diaktifkan konfigurasi kemudian terlihat seperti:
( 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)))) Pada macOS, alih-alih bisikan, Anda juga dapat menggunakan dikte Siri bawaan. Untuk mengaktifkannya, buka Preferences -> Keyboard -> Dictation , aktifkan dan atur jalan pintas. Standarnya adalah Ctrl-Ctrl.
The Way (Defun Whisper-check-install-and-run) diimplementasikan tidak berfungsi pada WIN10 (lihat #66).
Solusi adalah menginstal Whisper.cpp dan model secara manual dan tambalan:
( defun whisper--check-install-and-run ( buffer status )
(whisper--record-audio)) Output ucapan pada sistem non-macos default untuk menggunakan paket greader yang menggunakan espeak di bawahnya untuk mensintesis pidato. Anda perlu menginstal Greader secara manual (misalnya melalui Mx package-install ). Sejak saat itu harus "hanya bekerja". Anda dapat mengujinya dengan memilih beberapa teks dan memanggil Mx org-ai-talk-read-region .
API untuk difusi stabil dapat di-host dengan proyek stabil-difusi-webui. Pergi melalui langkah instal untuk platform Anda, lalu mulai server API-API:
cd path/to/stable-diffusion-webui
./webui.sh --nowebui Ini akan memulai server di http://127.0.0.1:7861 secara default. Untuk menggunakannya dengan org-ai, Anda perlu mengatur org-ai-sd-endpoint-base :
( setq org-ai-sd-endpoint-base " http://localhost:7861/sdapi/v1/ " )Jika Anda menggunakan server yang di -host di tempat lain, ubah URL itu sesuai.
Karena versi 0.4 org-AI mendukung model lokal yang dilayani dengan oobabooga/text-generation-webui. Lihat instruksi instalasi untuk mengaturnya untuk sistem Anda.
Berikut adalah setup walk-through yang diuji pada Ubuntu 22.04. Diasumsikan Miniconda atau Anaconda serta GIT-LF yang akan diinstal.
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 mendukung sejumlah model bahasa. Biasanya, Anda akan menginstalnya dari Huggingface. Misalnya, untuk menginstal model 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 Bergantung pada perangkat keras Anda dan model yang digunakan, Anda mungkin perlu menyesuaikan parameter server, misalnya penggunaan --load-in-8bit untuk mengurangi penggunaan memori atau --cpu jika Anda tidak memiliki GPU yang sesuai.
Anda sekarang harus dapat menggunakan model lokal dengan org-ai dengan menambahkan :local ke blok #+begin_ai :
#+begin_ai :local
Hello CodeLlama!
#+end_ai
Tidak, Openai adalah yang termudah untuk diatur (Anda hanya perlu kunci API) tetapi Anda dapat menggunakan model lokal juga. Lihat cara menggunakan difusi stabil dan LLM lokal dengan oobabooga/teks-generasi-webui di atas. Antropik Claude dan Kebingsity.ai juga didukung. Harap buka masalah atau PR untuk layanan lain yang ingin Anda lihat didukung. Saya bisa lambat untuk merespons tetapi akan menambahkan dukungan jika ada cukup minat.
Paket GPTEL menyediakan antarmuka alternatif ke OpenAI Chatgpt API: https://github.com/karthink/gptel
Jika Anda menemukan proyek ini berguna, pertimbangkan untuk mensponsori. Terima kasih!
CATATAN: Currenly Implementasi variasi gambar memerlukan ikal baris perintah untuk diinstal. Alasannya adalah bahwa API OpenAI mengharapkan permintaan multipart/form-data dan url-retrieve built-in Emacs tidak mendukung itu (setidaknya saya belum tahu bagaimana). Beralih ke request.el mungkin merupakan alternatif yang lebih baik. Jika Anda tertarik untuk berkontribusi, PR sangat disambut! ↩