برنامه نویسی

نحوه ایجاد چت در آنجا با استفاده از ابر پایتون و Groq Cloud

در این مقاله ، من به شما نشان می دهم که چگونه می توانید یک دستیار مجازی را با استفاده از پایتون و Groq Cloud API بسازید. بیایید برنامه ای ایجاد کنیم که به شما امکان می دهد با مدل های پیشرفته زبان به سادگی و کارآمد تعامل داشته باشید.

گروک چیست؟

Groq شرکتی است که از طریق API خود به مدل های زبان -ART دسترسی پیدا می کند. یکی از اصلی ترین مزایای GroQ ، سرعت استنباط آن است و پاسخ های سریع تری در مقایسه با سایر راه حل های موجود در بازار ارائه می دهد.

پیش نیازهای

  • پایتون 3.8+
  • دانش پایه پایتون
  • یک حساب Groq (برای دریافت API کلید)
  • فریپی
  • Uvicorn (سرویس Therg)

ساختار پروژه

├── src/
│   ├── domain/
│   │   └── ai_chat/
│   │       ├── entities/
│   │       │   └── message.py
│   │       └── use_cases/
│   │           └── process_message_use_case.py
│   └── interfaces/
│       ├── controllers/
│       │   └── ai_chat_controller.py
│       └── routes/
│           └── ai_chat_routes.py
├── config/
│   └── langchain_groq_config.py
└── requirements.txt
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پیکربندی اولیه

  1. ابتدا یک پروژه جدید ایجاد کنید و امکانات لازم را نصب کنید:
mkdir chat
cd chat
python -m venv venv
source venv/bin/activate  # No Windows use: .\venv\Scripts\activate
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. امکانات لازم را نصب کنید:
pip install fastapi uvicorn langchain-groq python-dotenv pydantic
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. یک فایل ایجاد کنید requirements.txt:
fastapi==0.109.2
uvicorn==0.27.1
pydantic>=2.7.4,<3.0.0
groq==0.4.2
python-dotenv==1.0.1
langchain==0.3.19
langchain-groq==0.2.4
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. یک فایل ایجاد کنید .env در ریشه پروژه:
GROQ_API_KEY=sua_api_key_aqui
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اجرای

1. پیکربندی مشتری Groq

ابتدا بیایید مشتری Groq را تنظیم کنیم. پرونده را ایجاد کنید config/langchain_groq_config.py:

import os
from dotenv import load_dotenv
from langchain_groq import ChatGroq

load_dotenv()

DEFAULT_MODEL = "mixtral-8x7b-32768"
DEFAULT_ROLE = "user"

def create_groq_client() -> ChatGroq:
    api_key = os.getenv("GROQ_API_KEY")
    if not api_key:
        raise ValueError("GROQ_API_KEY não encontrada nas variáveis de ambiente")
    return ChatGroq(
        groq_api_key=api_key,
        model_name=DEFAULT_MODEL
    )
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

2. تعریف موجودیت پیام

پرونده را ایجاد کنید src/domain/ai_chat/entities/message.py:

from pydantic import BaseModel

class Message(BaseModel):
    content: str
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

3. اجرای پرونده استفاده

پرونده را ایجاد کنید src/domain/ai_chat/use_cases/process_message_use_case.py:

from typing import Optional
from langchain_groq import ChatGroq
from langchain.prompts import ChatPromptTemplate
from src.domain.ai_chat.entities.message import Message
from config.langchain_groq_config import create_groq_client


class ProcessMessageUseCase:
    def __init__(self, groq_client: Optional[ChatGroq] = None):
        self.groq_client = groq_client or create_groq_client()

    async def execute(self, message: Message) -> str:
        try:
            messages = [
                ("system", "Você é um assitente pessoal chamado ZAgent"),
                ("human", message.content)
            ]

            template = ChatPromptTemplate.from_messages(messages)
            chain = template | self.groq_client

            response = await chain.ainvoke({})

            return str(response.content)

        except Exception as e:
            raise Exception(f"Erro ao processar mensagem: {str(e)}")
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

4. ایجاد کنترلر

پرونده را ایجاد کنید src/interfaces/controllers/ai_chat_controller.py:

from fastapi import APIRouter, HTTPException
from src.domain.ai_chat.entities.message import Message
from src.domain.ai_chat.use_cases.process_message_use_case import ProcessMessageUseCase

class AIChatController:
    def __init__(self):
        try:
            self.process_message_use_case = ProcessMessageUseCase()
            self.router = APIRouter()
            self._setup_routes()
        except ValueError as e:
            raise ValueError(f"Erro na configuração do controlador: {str(e)}")

    def _setup_routes(self):
        self.router.add_api_route(
            "/chat",
            self.chat,
            methods=["POST"],
            response_model=dict,
            summary="Processa uma mensagem usando IA",
            description="Recebe uma mensagem e retorna a resposta gerada pelo modelo de IA"
        )

    async def chat(self, message: Message) -> dict:
        try:
            response = await self.process_message_use_case.execute(message)
            return {"response": response}
        except ValueError as e:
            raise HTTPException(status_code=400, detail=str(e))
        except Exception as e:
            raise HTTPException(status_code=500, detail=str(e))
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

5. پیکربندی مسیرها

پرونده را ایجاد کنید src/interfaces/routes/ai_chat_routes.py:

from fastapi import APIRouter
from src.interfaces.controllers.ai_chat_controller import AIChatController

def setup_routes() -> APIRouter:
    controller = AIChatController()
    router = APIRouter(prefix="/api/v1", tags=["AI Chat"])

    router.include_router(controller.router)
    return router
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

6. اجرای پرونده اصلی

حال ، بیایید پرونده اصلی برنامه را ایجاد کنیم main.py:

import sys
from fastapi import FastAPI
from src.interfaces.routes.ai_chat_routes import setup_routes

app = FastAPI(
    title="Minha API FastAPI",
    description="Uma API de exemplo usando FastAPI com chat IA",
    version="1.0.0"
)

try:
    app.include_router(setup_routes())
except ValueError as e:
    print(f"Erro fatal na inicialização da aplicação: {str(e)}", file=sys.stderr)
    print("Certifique-se de que a variável de ambiente GROQ_API_KEY está configurada corretamente", file=sys.stderr)
    sys.exit(1)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نحوه استفاده

  1. متغیرهای محیط خود را پیکربندی کنید:
export GROQ_API_KEY=sua_api_key_aqui
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. سرور را اجرا کنید:
uvicorn main:app --reload
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. به مستندات API دسترسی پیدا کنید:
http://localhost:8000/docs
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. درخواست چت کنید:
curl -X POST "http://localhost:8000/api/v1/chat" \
     -H "Content-Type: application/json" \
     -d '{"content": "Olá, tudo bem?"}'
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ملاحظات ایمنی

  • هرگز API کلید خود را به اشتراک نگذارید
  • برای ذخیره اطلاعات حساس از متغیرهای محیط استفاده کنید
  • اجرای محدودیت نرخ برای کنترل استفاده از API

مراحل بعدی

برخی از پیشنهادات برای گسترش پروژه:

  1. جلوی رابط adicionar (React ، vue.js و غیره)
  2. تاریخچه مکالمات پایگاه داده را پیاده سازی کنید
  3. پشتیبانی به مدلهای مختلف اضافه کنید
  4. حافظه نهان پاسخ را با Redis پیاده سازی کنید
  5. تست های خودکار را با Pytest اضافه کنید
  6. احراز هویت و مجوز را اجرا کنید
  7. محدودیت نرخ و وسط ایمنی را اضافه کنید

پایان

در این مقاله ، ما می آموزیم که چگونه با استفاده از API Python و Groq ، چت بسازیم. اجرای از شیوه های توسعه خوب پیروی می کند و به راحتی می توان ویژگی های بیشتری را نیز در بر گرفت.

منابع مفید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا