Hola, este proyecto trata sobre la construcción de una interfaz útil en el modelo de lenguaje GPT de Clojure.
Es un trabajo en progreso, pero tiene un administrador de conversaciones en memoria que funciona (memoria conversacional) y un administrador de tareas WIP rudimentario (agentes).
Es pronto, pero tengo la intención de utilizar esto en mi trabajo y también aprender los fundamentos de la interacción con modelos de lenguaje.
Si estás interesado, quieres ayudar o necesitas ayuda, puedes encontrarme en el canal #multi-gpt en Clojurians Slack.
Aquí le mostramos cómo comenzar con el administrador de conversaciones, que también puede encontrar en los ejemplos en basic_conversation.clj.
( require '[multi-gpt.repl-interface :refer :all ]
'[clojure.pprint :refer [pprint]])
; ;
; ; Run below if you want to use portal to see the output
; ;
( require '[portal.api :as p])
( def p ( p/open { :launcher :vs-code }))
( add-tap #'p/submit)
; ;
; ; Setup the system (includes a conversation manager)
; ;
( def system ( setup-system " api-key "
" org-id "
" gpt-3.5-turbo " ))
; ;
; ; Create a conversation
; ;
( def conversation ( create-conversation system))
; ;
; ; Create a convenience function for chatting as the user role ;;
; ;
( def chat ( fn [message]
( update-conversation system conversation [{ :role " user " :content message}])))
; ;
; ; Add a watch to print to the REPL (I also use portal and tap>)
; ;
( add-watch ( -> system :conversation-manager :db )
:on-update
( fn [_ _ _ new-state]
; ;
; ; If you want to view output with portal uncomment this
; ;
#_( tap> ( with-meta ( update ( get new-state ( :id conversation))
:messages
reverse)
{ :portal.viewer/default :portal.viewer/tree }))
; ;
; ; Comment out below if using portal
; ;
( pprint
( get new-state ( :id conversation)))))
; ;
; ; Initialize your conversation with a system prompt
; ; This is also a reasonable place to add example messages if needed
; ;
( update-conversation
system
conversation
[{ :role " system " :content " You will help me develop the next breakthrough in distributed systems. " }])
; ;
; ; Engage in conversation
; ;
( chat " Please provide the most cutting edge research topics about these systems. " )
Copyright 2023 Cameron Barre
Por el presente se otorga permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para operar con el Software sin restricciones, incluidos, entre otros, los derechos de uso, copia, modificación, fusión. , publicar, distribuir, sublicenciar y/o vender copias del Software, y permitir que las personas a quienes se les proporciona el Software lo hagan, sujeto a las siguientes condiciones:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA “TAL CUAL”, SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGÚN RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, AGRAVIO O DE OTRA MANERA, QUE SURJA DE, FUERA DE O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS NEGOCIOS EN EL SOFTWARE.