[AI] ChatRWKVアプリ製作 その2 LangChainの追加

[M1 Mac, Ventura 13.3.1, Python 3.10.4]

RWKVのモデルをLangChainでも使えるようにGUIを書き換えました。

import os, sys
from PyQt6.QtWidgets import QLabel,QWidget,QApplication,QTextEdit,QLineEdit,QPushButton,QComboBox, QLabel, QRadioButton, QButtonGroup
from PyQt6.QtCore import Qt
from langchain import OpenAI
import chat_base

class ChatRWKV(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("RWKV")
        self.setGeometry(100,100,480,640)
        self.setStyleSheet('background-color: #165E83') # 藍色 あいいろ
        self.setAcceptDrops(True)
        
        # 信号
        self.box = QLabel(self)
        self.box.setGeometry(420,15,50,50)
        self.box.setStyleSheet('background-color: #3E62AD') # 杜若色 かきつばたいろ
        
        tool = QLabel('TOOL',self)
        tool.setGeometry(10,15,40,20)
        tool.setStyleSheet('color: #FFFFFF; font-size: 14pt;')
        tool.setAlignment(Qt.AlignmentFlag.AlignLeft)
        
        self.rbtn1 = QRadioButton('ChatRWKV', self)
        self.rbtn1.setGeometry(60,10,100,25)
        self.rbtn1.setChecked(True) 

        self.rbtn2 = QRadioButton('LangChain', self)
        self.rbtn2.setGeometry(170,10,100,25)
        
        # ラジオボタングループの作成
        self.group = QButtonGroup(self)
        self.group.addButton(self.rbtn1)
        self.group.addButton(self.rbtn2)

<以下略>

[AI] ChatRWKVアプリ製作 その1 GUI作成 PyQt6

[M1 Mac, Ventura 13.3.1, Python 3.10.4]

ChatRWKVのGUIアプリ製作に着手しました。

とりあえずPyQt6でガワだけ作成しました。chat.pyは改変してクラス化しています。

import os, copy, types, gc, sys
import numpy as np
from prompt_toolkit import prompt
import torch

class chat_base():
    def __init__(self, lang, strat, model):
        self.lang = lang
        self.strat = strat
        self.model = model
        
        current_path = os.path.dirname(os.path.abspath(__file__))
        sys.path.append(f'{current_path}/../rwkv_pip_package/src')
        
        try:
            os.environ["CUDA_VISIBLE_DEVICES"] = sys.argv[1]
        except:
            pass
        np.set_printoptions(precision=4, suppress=True, linewidth=200)
        args = types.SimpleNamespace()

        print('\n\nChatRWKV v2 https://github.com/BlinkDL/ChatRWKV')

<以下略>