如下,可以用openai的python API,先写一个python脚本。 然后根据需求在emacs中调用,如此即可。 从此,
再没有心的沙漠
再没有爱的荒原
死神也望而却步
幸福之花处处开遍…
import openai
def get_response(query):
openai.api_key = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": query}])
return completion['choices'][0]['message']['content']
def get_query_email(text):
return "Please polish this email: {}".format(text)
def get_query_paper(text):
return "Please polish academically: {}".format(text)
def main():
import argparse
parser = argparse.ArgumentParser(description = 'polish by chatgpt')
parser.add_argument('--text', dest='text', help='text')
parser.add_argument('--type', dest='type', help='type')
args = parser.parse_args()
try:
query = ""
if args.type == 'email':
query = get_query_email(args.text)
elif args.type == 'paper':
query = get_query_paper(args.text)
response = get_response(query)
print(response)
except Exception:
print("Error")
if __name__ == '__main__':
main()
(defun polish-selected-by-chatGPT()
(interactive)
(if (evil-visual-state-p)
(let ((beg (region-beginning))
(end (region-end)))
(progn
(setq text (buffer-substring-no-properties beg end))
(setq output (shell-command-to-string (format "python3 ~/bin/polish_chatgpt_api.py --type email --text \"%s\"" (replace-in-string "\"" "\\\"" text))))
(evil-change beg end)
(insert output)
(evil-visual-state)))
()))