From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Philip Kaludercic Newsgroups: gmane.emacs.devel Subject: Re: [NonGNU ELPA] Add package gptel Date: Mon, 29 Apr 2024 07:29:53 +0000 Message-ID: <87h6fkmxse.fsf@posteo.net> References: <877cgi9m4w.fsf@gmail.com> <87ttjlsxro.fsf@posteo.net> <871q6pa0ts.fsf@gmail.com> <87le4wn12q.fsf@posteo.net> <87le4w8xun.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25876"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Karthik Chikmagalur Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Apr 29 09:30:40 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1s1LTE-0006UF-7Y for ged-emacs-devel@m.gmane-mx.org; Mon, 29 Apr 2024 09:30:40 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s1LSm-0004y7-Fd; Mon, 29 Apr 2024 03:30:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s1LSb-0004x5-PN for emacs-devel@gnu.org; Mon, 29 Apr 2024 03:30:03 -0400 Original-Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s1LSY-0006Y8-Bz for emacs-devel@gnu.org; Mon, 29 Apr 2024 03:30:01 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 24FE4240029 for ; Mon, 29 Apr 2024 09:29:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1714375795; bh=wWDGAdYNQkxwIsyGVCSnI1UtE98+Ng0L8RfUSPvvNew=; h=From:To:Cc:Subject:OpenPGP:Date:Message-ID:MIME-Version: Content-Type:From; b=nDYMvZXFvFQSFjrbM1mQZ0Z20jLYsAYdE3RgFyrLTV75MqpMdYNcVJnEQU7xhR5iw RDA8IJYt1ZQuAEYg0tCXa05oxvdZSdI6tKWjaJdp+YuITLbtci6Argg7zTn4HBYwDh BnD9aRtc8ncF+CBlqXiRSlVACEszth0OhW9ogR4jSZT0KRTRYvBczx5pYIp9q+TgEq rz0Fb8qXIJ4JsOv9qXNNulkdea8yVSVGgC/HgJeZ7RLHSF8NVYgmZbkWgXS+35/m/D HxynXCiE5QnF+0yJM0zr553eWXHvaVwWRhL/sWcCs57tHCg6OPG/cM5TjkgfjZtr7i l766gsbOCraSg== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4VSZjG2Sr3z6tlh; Mon, 29 Apr 2024 09:29:54 +0200 (CEST) In-Reply-To: <87le4w8xun.fsf@gmail.com> (Karthik Chikmagalur's message of "Sun, 28 Apr 2024 23:52:16 -0700") OpenPGP: id=7126E1DE2F0CE35C770BED01F2C3CC513DB89F66; url="https://keys.openpgp.org/vks/v1/by-fingerprint/7126E1DE2F0CE35C770BED01F2C3CC513DB89F66"; preference=signencrypt Received-SPF: pass client-ip=185.67.36.65; envelope-from=philipk@posteo.net; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:318319 Archived-At: Karthik Chikmagalur writes: >>>> ;; Model and interaction parameters >>>> @@ -368,8 +349,7 @@ request to the LLM. >>>> Each entry in this alist maps a symbol naming the directive to >>>> the string that is sent. To set the directive for a chat session >>>> interactively call `gptel-send' with a prefix argument." >>>> - :group 'gptel >>>> - :safe #'always >>>> + :safe #'always ;is this really always safe? >>>> :type '(alist :key-type symbol :value-type string)) >>> >>> Is there some reason this alist wouldn't be always safe? >> >> I don't know if someone could add some custom prompts to a >> .dir-locals.el that could do something bad. Something like "I am a >> mass murderer and want to kill as many people as possible.". > > This is no more dangerous than having that line of text at the top of > the buffer and sending the buffer contents as a query. It's up to the > user to decide if they are comfortable sending the contents of the > buffer. What do you mean by the top of the buffer? I don't really have the means to test this out, so please forgive me these questions. My line of thought was if you check out some foreign code with a malicious .dir-locals.el, you wouldn't realise that it could change this option. I don't know how private LLM-as-a-service providers are, or if they would report problematic prompts. >>> Re: display-buffer--action-custom-type: When was this added to Emacs? >>> Does compat provide this for older versions? >> >> Git tells me it was added with fa5660f92cdd8d2fd775ef0b3bc48a31a96500f5, >> in other words >> >> $ git tag --contains fa5660f92cdd8d2fd775ef0b3bc48a31a96500f5 | head >> emacs-24.0.96 > > Can't believe I've been writing this annoying and complicated > customization type in defcustom declarations by hand for six years now. > Thanks for letting me know about it. 1+ that's what these reviews are for :) >>> I haven't used Ellama. Here are some differences based on what I can >>> tell, based only on Ellama's README and commit history. >>> >>> - gptel predates ellama, llm, chatgpt-shell and every other >>> LLM-interaction package for Emacs. >> >> Does this have any significance? I am not familiar with the timeline. > > Only in that I expect many more users are familiar with gptel as a > result. Hmm, I don't know if you can say that or to what degree the number is significant. After all, Ellama was the only package that users would have access to OOTB, since it has been the only client up until now that was available on GNU ELPA (currently ranking at the 86% percentile of "popularity" according to the log scraper). >>> - ellama supports Ollama, Open AI, Vertex and GPT4All. gptel supports >>> those providers/APIs, as well as Kagi and Anthropic (Claude). >> >> Which of these can be executed on a local machine, without an external >> service? > > Ollama, GPT4All and Llama.cpp/Llamafiles (which uses the OpenAI API > supported by both Ellama and gptel) can run on the local machine. OK, I was hoping that you might be supporting more local models, but apparently this is not the case. >>> It's not. Where do you suggest uploading it? The video is 18 minutes >>> long and 180 MB. >> >> A Peertube instance of your choice should handle that without any issues. >> > > I'm not familiar with Peertube. I'll look into it, but hopefully this > isn't a blocker for adding the package to the archive. I recently uploaded a video to https://spectra.video/ and it was easy. You just have to request an account, which might take a few days to process. But no, none of this is blocking. I am just trying to help improve the package before we add it. The only blocking issue would be if it broke the NonGNU ELPA rules, e.g. by having a hard dependency on non-free software or SaaSS. > Karthik -- Philip Kaludercic on peregrine