Giter Site home page Giter Site logo

llama-cpp-langchain-chat's Introduction

!!This repository is no longer being maintained!!

llama-cpp-langchain-chat

Lightweight Llama.cpp chatbot made with langchain and chainlit. This project mainly serves as a simple example of langchain chatbot and is a template for further langchain projects. Uses chainlit as a dropin UI chatbot so there is basically no ui code.

Prompt Support

Supports alpaca text prompts, v2 and tavern style json and yaml files and V2 and tavern png cards. Text prompts need to start with the instruct portion, but the response is appended to the text prompt template. Avatar images need to be in the same folder as the prompt file. V2 and Tavern png files get a copy of the image without exif data in the project temp file.

Card Format

'name' : 'char_name'
The name for the ai character. When using json or yaml, this is expected to correspond to avatar image. name.png or name.jpg.
'description' : 'char_persona'
The description for the character personality. Likes, dislikes, personality traits.
'scenario' : 'world_scenario'
Description of the scenario. This roughly corresponds to things like "You are a hr customer service having a discussion with a customer. Always be polite". etc.
'mes_example' : 'example_dialogue'
Example dialogue. The AI will pick answer patterns based on this
'first_mes' : 'char_greeting'
A landing page for the chat. This will not be included in the prompt.

See https://zoltanai.github.io/character-editor/ for a character card editor.

Configs

See the configuration params in .env.example file

Running the chatbot

You might want to build with cuda support. You need to pass FORCE_CMAKE=1 and CMAKE_ARGS="-DLLAMA_CUBLAS=on" to env variables

pipenv install - requirements.txt
pipenv shell
(optional for cuda support)$env:FORCE_CMAKE=1
(optional for cuda support)$env:CMAKE_ARGS="-DLLAMA_CUBLAS=on"
(optional for cuda support)pip install llama-cpp-python==0.2.6 --force-reinstall --upgrade --no-cache-dir --no-deps
cd src\llama_cpp_langchain_chat
chainlit run chat.py

OR

hatch env create
hatch shell
(optional for cuda support)$env:FORCE_CMAKE=1
(optional for cuda support)$env:CMAKE_ARGS="-DLLAMA_CUBLAS=on"
(optional for cuda support)pip install llama-cpp-python==0.2.6
--force-reinstall --upgrade --no-cache-dir --no-deps
cd src\llama_cpp_langchain_chat
chainlit run chat.py

The chatbot should open in your browser

chatbot

llama-cpp-langchain-chat's People

Contributors

ossirytk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

seanspt dilin993

llama-cpp-langchain-chat's Issues

I get the error: UnboundLocalError: cannot access local variable 'card' where it is not associated with a value

Hi, excellent work! I am very interested in trying this app. But i'm trying to use it as it is by default, but I'm getting this error:

llama-cpp-langchain-chat\src\llama_cpp_langchain_chat_init_.py", line 116, in parse_prompt
char_name = card["name"] if "name" in card else card["char_name"]
^^^^
UnboundLocalError: cannot access local variable 'card' where it is not associated with a value

I understand this is because I am not assigned an Charracter. Is there any possibility that by default they include a standard Character?
So it can be tested out of the box? Or maybe you can tell me where the error may be. Thank you so much

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.