|
import os |
|
import gradio as gr |
|
import sqlite3 |
|
from dotenv import load_dotenv |
|
from groq import Groq |
|
from utils import generate_double_entry, save_transaction |
|
|
|
load_dotenv() |
|
client = Groq(api_key=os.environ["GROQ_API_KEY"]) |
|
|
|
def call_groq(prompt): |
|
response = client.chat.completions.create( |
|
messages=[{"role": "user", "content": prompt}], |
|
model="mixtral-8x7b-instruct", |
|
stream=False, |
|
) |
|
return response.choices[0].message.content |
|
|
|
def accounting_chatbot(user_input): |
|
llm_output = call_groq(user_input) |
|
debit, credit, amount = generate_double_entry(llm_output) |
|
save_transaction(debit, credit, amount, user_input) |
|
|
|
output = f"**Double Entry**\n- Debit: {debit}\n- Credit: {credit}\n- Amount: {amount}\n\n🧠 {llm_output}" |
|
|
|
|
|
return output |
|
|
|
demo = gr.ChatInterface(fn=accounting_chatbot, title="AI Accounting Assistant") |
|
demo.launch() |
|
|