Bem -vindo ao repositório de botas de pesquisa de Langchain! Este projeto é um ponto de partida fantástico para quem quer mergulhar no mundo da pronta engenharia com Langchain. É um chatbot baseado em Python que aproveita o poder da API Openai e da pesquisa do Google via Serpapi para oferecer uma experiência interativa e educacional para engenheiros como você.
Langchain é uma biblioteca Python versátil que simplifica o processo de criação de aplicativos de PNL com grandes modelos de linguagem (LLMS). Oferece uma ampla gama de recursos, como LLMS e instruções, esquema, modelos, avisos, índices, memória, correntes e agentes. Esse repositório usa o Langchain para criar um chatbot divertido e envolvente que pode ajudá -lo a aprender os meandros da engenharia rápida.
O bot de pesquisa de Langchain é perfeito para quem quiser:
Este chatbot não é apenas uma ferramenta de aprendizado, mas também um trampolim para seus futuros projetos de PNL. Ao trabalhar com o Bot de Pesquisa Langchain, você obterá uma experiência valiosa que será útil à medida que criar aplicativos mais complexos.
Encorajo você a mergulhar, explorar o código e experimentar diferentes recursos. O bot de pesquisa de Langchain foi projetado para ser amigável, alegre e acolhedor, então não hesite em começar!
Para uma introdução detalhada ao Langchain e seus componentes, consulte o Langchain Quick Start Guide. Ele o levará a tudo o que você precisa saber para se tornar proficiente em usar o Langchain para seus projetos de PNL.
Então, o que você está esperando? Vamos começar sua jornada para o mundo da pronta engenharia com o Bot de Pesquisa Langchain! Codificação feliz!
docker-desktop e docker-compose no seu sistema.key.env na raiz do repo com as teclas API para OPENAI_API_KEY e SERPAPI_API_KEY .config.yml com um nome de chatbot.image e container_name em docker-compose.ymlubuntu:latestmy_chatbotdocker-compose builddocker-compose up -d de uma concha na raiz do repo.docker exec -it CONTAINER_NAME /bin/bashpython3 src/main.pyexit do tipo botdocker-compose down Nesta seção, passaremos por um exemplo simples de engenharia imediata usando um modelo de prompt fornecido. Isso ajudará você a entender como ensinar um modelo de idioma em determinados comportamentos, como seu nome, sentimento e como responder a perguntas. Também exploraremos a lógica por trás da seção formatada. Convido você a experimentar diferentes instruções para observar as mudanças no comportamento do bot!
O modelo de prompt que usaremos está localizado em /pp/src/template/base.txt:
Your name is {chatbot_name}. If asked to identify yourself, respond with your name.
The sentiment of your language is kind, friendly, and virtuous.
You have access to the following tools:
{tools}
Use the following format:
Question: the input question you must answer
Thought: you should always think about what to do and decide whether or not to use the available tools. If you know the answer or can generate it, proceed to the final answer. If not, consider using a tool. For current information like date, time news, or events, use the appropriate tool from [{tool_names}] to search for external information and incorporate the information into your knowledge. Your answers should never include placeholders that you intend to have filled by variables or formatting.
If needed, Action: the action to take, it should answer the question, it could be one of [{tool_names}]
If needed, Action Input: the input to the action
If needed, Observation: the result of the action. Parse and extract the relevant information from the observation.
... (this Thought/Action/Action Input/Observation can repeat N times if required)
Thought: I now know the final answer
Final Answer: the final answer to the original input question
Begin! Remember to be in the persona of the cheerful, humble, wise, and virtuous assistant {chatbot_name}.
Question: {input}
{agent_scratchpad}
Neste modelo, os componentes iniciais definem o nome do chatbot, como ele deve responder quando solicitado a se identificar e o sentimento de seu idioma. O sentimento é descrito como gentil, amigável e virtuoso, definindo o tom para as respostas do bot.
A seção formatada orienta o processo de tomada de decisão do chatbot. Começa com uma pergunta, seguida por um processo de pensamento em que o chatbot considera se já sabe a resposta ou precisa usar uma ferramenta para encontrá -la. Se for necessária uma ferramenta, o chatbot escolherá a ação apropriada, fornecerá a entrada necessária e observará o resultado. Essa sequência de pensamento/ação/ação/observação pode repetir quantas vezes for necessário para responder à pergunta.
Depois que o chatbot coleta as informações relevantes, ele prossegue para a resposta final, que é a resposta do chatbot à pergunta de entrada.
Para começar com a engenharia rápida, tente modificar esse modelo e observar como as mudanças afetam o comportamento do chatbot. Você pode alterar o nome, o sentimento ou as ferramentas disponíveis. Experimente diferentes prompts e observe como o chatbot se adapta às novas instruções. Essa experiência prática o ajudará a entender mais profundamente como a engenharia rápida funciona e como criar experiências de chatbot mais sofisticadas e personalizadas.
Este projeto está licenciado nos termos da licença Apache 2.0.
Versão 2.0, janeiro de 2004 http://www.apache.org/license/
Copyright 2023 Kyle J. Tobin
Licenciado sob a licença Apache, versão 2.0 (a "licença"); Você não pode usar esse arquivo, exceto em conformidade com a licença. Você pode obter uma cópia da licença em
http://www.apache.org/license/license-2.0
A menos que exigido pela lei aplicável ou acordada por escrito, o software distribuído pela licença é distribuído "como está", sem garantias ou condições de qualquer tipo, expressa ou implícita. Consulte a licença para o idioma específico que rege as permissões e limitações sob a licença.