From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Andrew Hyatt Newsgroups: gmane.emacs.devel Subject: Re: [NonGNU ELPA] New package: llm Date: Sat, 26 Aug 2023 21:07:33 -0400 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="0000000000008f849f0603dd34e7" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="10997"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Aug 27 03:09:05 2023 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 1qa4H3-0002fU-9A for ged-emacs-devel@m.gmane-mx.org; Sun, 27 Aug 2023 03:09:05 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qa4G7-0002Xl-PK; Sat, 26 Aug 2023 21:08:07 -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 1qa4G4-0002XH-Ct for emacs-devel@gnu.org; Sat, 26 Aug 2023 21:08:05 -0400 Original-Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qa4G1-0006P8-Ga; Sat, 26 Aug 2023 21:08:04 -0400 Original-Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-500a398cda5so3366908e87.0; Sat, 26 Aug 2023 18:07:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693098465; x=1693703265; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=vDldMluZPRY3/gUOy9V6RZUadl0LGvcYO36mDVgGK1k=; b=NEOf9dili/ZE1wzWb9HWkl6NvJUi4ABMQJHvJN0fDH03w/DsQgKLU4Prbmj20uWmEV SeKdlVPXk0NZh/Hzs4t7VML6cAuOLyM+BIJ8Cz0u1ozaCeM3AkcXjWrnT1m5+l6l0qqS ViynvLcx57ugzpJ4o6Z5pZFRi74VR8X+P8qjJ9UJCeexKWa9ge4q2QujOpsrR7ghADRx 7ZJO2vgIE31zGPky5FteFaV/s0HF2/zf1Zs+/aR3EbrBPqk6Z4laP3v19XaXPD3jSHcN +UiNi5Uyyc+J+5LM4r9d+fwosoRYAOUjLT8biHUHu4bTg6lkkJU95ukS4sZDnwbSkjgS oseA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693098465; x=1693703265; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=vDldMluZPRY3/gUOy9V6RZUadl0LGvcYO36mDVgGK1k=; b=KZ39Zsw5Bp+PV6NwsqoZLq735zw4kRfd2vPJOu10e6AOEbb/UWZMZ8HvFH0/OHptHP 2Cg6eC/GjZCrCYXauIYp/hQ3gU6QZvzgTX881RtrlfLvodJIoE7Nta+T+4k8+y2Rhysb QFsZMxAkEL6PnY4Lm/7a2Ua7oRigKz7kGGlvrEtf8srHRYsMLKHGtRQcjTBRkbFNNjZM dkPGG0B+mjZYzXikrF85ZnC9lFoFgCxRkjRIb6Vz6Q239dfPzQNvd/iOpl+46yLmgq30 0PCKIGm22VDXl7QwdNsrFcIyADHfz8K6Z3OPVM4fTR3VhJuFNUZzp9IG1eXb2YLA7bRk Lzyw== X-Gm-Message-State: AOJu0YxAdTnrpA7tC0U9VbuRGJFN0qPxiHOkmKJTDLQl91E85CiEID2P kuS8uzuFdiF+QwXeP7aNqWEQ7cAk0bTo1GWmyDJxuqUtD3o= X-Google-Smtp-Source: AGHT+IGCsz0ru7yyBdlQOw1IlnyiteOdSw5nVWBIG6YDG0yv82qBUHVbusKpw+L759+AiJKnM0rpRFnzfKDjtiRvGaA= X-Received: by 2002:a19:2d51:0:b0:500:a69a:1c4 with SMTP id t17-20020a192d51000000b00500a69a01c4mr3644165lft.58.1693098464738; Sat, 26 Aug 2023 18:07:44 -0700 (PDT) In-Reply-To: Received-SPF: pass client-ip=2a00:1450:4864:20::131; envelope-from=ahyatt@gmail.com; helo=mail-lf1-x131.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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:309289 Archived-At: --0000000000008f849f0603dd34e7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I've now made the changes requested to the llm package on github ( https://github.com/ahyatt/llm). Because what was requested was a warning to the user, I used `lwarn', and have added an option to turn the warnings off (and the user can turn the warnings off through the warning mechanism as well, via `warning-suppress-log-types'). To save you the trouble of looking at the code to see what exactly it says, here's the function I'm using to warn: (defun llm--warn-on-nonfree (name tos) "Issue a warning if `llm-warn-on-nonfree' is non-nil. NAME is the human readable name of the LLM (e.g 'Open AI'). TOS is the URL of the terms of service for the LLM. All non-free LLMs should call this function on each llm function invocation." (when llm-warn-on-nonfree (lwarn '(llm nonfree) :warning "%s API is not free software, and your freedom to use it is restricted. See %s for the details on the restrictions on use." name tos))) If this is sufficient, please consider accepting this package into GNU ELPA (see above where we decided this is a better fit than the Non-GNU ELPA). On Sat, Aug 12, 2023 at 9:43=E2=80=AFPM Richard Stallman wrot= e: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > What you are saying is consistent with the GNU coding standard. > However, I > > think any message about this would be annoying, > > I am sure it would be a little annoying. But assuming the user can > type SPC and move on from that message, the annoyance will be quite > little. > > personally, and would > be a > > deterrent for clients to use this library. > > If the library is quite useful I doubt anyone would be deterred. > If anyone minded it the message enough to stop using the package, perse > could > edit this out of the code. > > This issue is an example of those where two different values are > pertinent. There is convenience, which counts but is superficial. > And there is the purpose of the GNU system, which for 40 years has led > the fight against injustice in software. That value is deep and, in the > long term, the most important value of all. > > When they conflict in a specific practical matter, there is always > pressure to prioritize convenience. But that is not wise. > The right approach is to look for a ocmpromise which serves both > goals. I am sure we can find one here. > > I suggested showing the message once a day, because that is what first > occurred to me. But there are lots of ways to vary the details. > Here's an idea. For each language model, it could diisplay the > message the first, second, fifth, tenth, and after that every tenth > time the user starts that mode. With this, the frequency of little > annoyance will diminish soon, but the point will not be forgotten. > > > You made suggestions for how to exclude more code from Emacs itself, > and support for obscure language models we probably should exclude. > But there is no need to exclude the support for the well-known ones, > as I've explained. > > And we can do better than that! We can educate the users about what > is wrong with those systems -- something that the media hysteria fails > to mention at all. That is important -- let's use Emacs for it! > > > All implementations can then separately be made available on some oth= er > > package library not associated with GNU. In this scenario, I wouldn'= t > have > > warnings on those implementations, just as the many llm-based package= s > on > > various alternative ELPAs do not have warnings today. > > They ought to show warnings -- the issue is exactly the same. > > We should not slide quietly into acceptance and normalization of a new > systematic injustice. Opposing it is our job. > > -- > Dr Richard Stallman (https://stallman.org) > Chief GNUisance of the GNU Project (https://gnu.org) > Founder, Free Software Foundation (https://fsf.org) > Internet Hall-of-Famer (https://internethalloffame.org) > > > --0000000000008f849f0603dd34e7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I've now made the changes requested to the llm package= on github (https://github.com/ah= yatt/llm).

Because what was requested was a warning = to the user, I used `lwarn', and have added an option to turn the warni= ngs off (and the user can turn the warnings off through the warning mechani= sm as well, via `warning-suppress-log-types').

To save you the trouble of looking at the code to see what exactly it says= , here's the function I'm using to warn:

(= defun llm--warn-on-nonfree (name tos)
=C2=A0 "Issue a warning if `l= lm-warn-on-nonfree' is non-nil.
NAME is the human readable name of t= he LLM (e.g 'Open AI').

TOS is the URL of the terms of servi= ce for the LLM.

All non-free LLMs should call this function on each = llm function
invocation."
=C2=A0 (when llm-warn-on-nonfree
= =C2=A0 =C2=A0 (lwarn '(llm nonfree) :warning "%s API is not free s= oftware, and your freedom to use it is restricted.
See %s for the detail= s on the restrictions on use." name tos)))

If this is sufficient, please consider accepting this package into GNU EL= PA (see above where we decided this is a better fit than the Non-GNU ELPA).=


On Sat, Aug 12, 2023 at 9:43=E2=80=AFPM Richard Stallm= an <rms@gnu.org> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft:1px solid rgb(204,204,204);padding-left:1ex">[[[ To any NSA and FBI age= nts reading my email: please consider=C2=A0 =C2=A0 ]]]
[[[ whether defending the US Constitution against all enemies,=C2=A0 =C2=A0= =C2=A0]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]<= br>
=C2=A0 > What you are saying is consistent with the GNU coding standard.= =C2=A0 However, I
=C2=A0 > think any message about this would be annoying,

I am sure it would be a little annoying.=C2=A0 But assuming the user can type SPC and move on from that message, the annoyance will be quite
little.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 personally, and would be a
=C2=A0 > deterrent for clients to use this library.

If the library is quite useful I doubt anyone would be deterred.
If anyone minded it the message enough to stop using the package, perse cou= ld
edit this out of the code.

This issue is an example of those where two different values are
pertinent.=C2=A0 There is convenience, which counts but is superficial.
And there is the purpose of the GNU system, which for 40 years has led
the fight against injustice in software.=C2=A0 That value is deep and, in t= he
long term, the most important value of all.

When they conflict in a specific practical matter, there is always
pressure to prioritize convenience.=C2=A0 But that is not wise.
The right approach is to look for a ocmpromise which serves both
goals.=C2=A0 I am sure we can find one here.

I suggested showing the message once a day, because that is what first
occurred to me.=C2=A0 But there are lots of ways to vary the details.
Here's an idea.=C2=A0 For each language model, it could diisplay the message the first, second, fifth, tenth, and after that every tenth
time the user starts that mode.=C2=A0 With this, the frequency of little annoyance will diminish soon, but the point will not be forgotten.


You made suggestions for how to exclude more code from Emacs itself,
and support for obscure language models we probably should exclude.
But there is no need to exclude the support for the well-known ones,
as I've explained.

And we can do better than that!=C2=A0 We can educate the users about what is wrong with those systems -- something that the media hysteria fails
to mention at all.=C2=A0 That is important -- let's use Emacs for it!
=C2=A0 > All implementations can then separately be made available on so= me other
=C2=A0 > package library not associated with GNU.=C2=A0 In this scenario= , I wouldn't have
=C2=A0 > warnings on those implementations, just as the many llm-based p= ackages on
=C2=A0 > various alternative ELPAs do not have warnings today.

They ought to show warnings -- the issue is exactly the same.

We should not slide quietly into acceptance and normalization of a new
systematic injustice.=C2=A0 Opposing it is our job.

--
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)


--0000000000008f849f0603dd34e7--