Safetensors
GGUF
Turkish
llama
Llama-3
instruct
finetune
chatml
gpt4
synthetic data
distillation
function calling
json mode
axolotl
roleplaying
chat
Instructions to use tda45/TdAI with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use tda45/TdAI with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf tda45/TdAI # Run inference directly in the terminal: llama cli -hf tda45/TdAI
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf tda45/TdAI # Run inference directly in the terminal: llama cli -hf tda45/TdAI
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf tda45/TdAI # Run inference directly in the terminal: ./llama-cli -hf tda45/TdAI
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf tda45/TdAI # Run inference directly in the terminal: ./build/bin/llama-cli -hf tda45/TdAI
Use Docker
docker model run hf.co/tda45/TdAI
- LM Studio
- Jan
- Ollama
How to use tda45/TdAI with Ollama:
ollama run hf.co/tda45/TdAI
- Unsloth Studio
How to use tda45/TdAI with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for tda45/TdAI to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for tda45/TdAI to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for tda45/TdAI to start chatting
- Docker Model Runner
How to use tda45/TdAI with Docker Model Runner:
docker model run hf.co/tda45/TdAI
- Lemonade
How to use tda45/TdAI with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull tda45/TdAI
Run and chat with the model
lemonade run user.TdAI-{{QUANT_TAG}}List all available models
lemonade list
- Atomic Chat
TdAI / llama.cpp /tools /ui /src /lib /components /app /mcp /McpResourcesBrowser /mcp-resources-browser.ts
| import type { MCPResource, MCPResourceInfo } from '$lib/types'; | |
| import { parseResourcePath } from '$lib/utils'; | |
| export interface ResourceTreeNode { | |
| name: string; | |
| resource?: MCPResourceInfo; | |
| children: Map<string, ResourceTreeNode>; | |
| isFiltered?: boolean; | |
| } | |
| function resourceMatchesSearch(resource: MCPResource, query: string): boolean { | |
| return ( | |
| resource.title?.toLowerCase().includes(query) || resource.uri.toLowerCase().includes(query) | |
| ); | |
| } | |
| export function buildResourceTree( | |
| resourceList: MCPResource[], | |
| serverName: string, | |
| searchQuery?: string | |
| ): ResourceTreeNode { | |
| const root: ResourceTreeNode = { name: 'root', children: new Map() }; | |
| if (!searchQuery || !searchQuery.trim()) { | |
| for (const resource of resourceList) { | |
| const pathParts = parseResourcePath(resource.uri); | |
| let current = root; | |
| for (let i = 0; i < pathParts.length - 1; i++) { | |
| const part = pathParts[i]; | |
| if (!current.children.has(part)) { | |
| current.children.set(part, { name: part, children: new Map() }); | |
| } | |
| current = current.children.get(part)!; | |
| } | |
| const fileName = pathParts[pathParts.length - 1] || resource.name; | |
| current.children.set(resource.uri, { | |
| name: fileName, | |
| resource: { ...resource, serverName }, | |
| children: new Map() | |
| }); | |
| } | |
| return root; | |
| } | |
| const query = searchQuery.toLowerCase(); | |
| // Build tree with filtering | |
| for (const resource of resourceList) { | |
| if (!resourceMatchesSearch(resource, query)) continue; | |
| const pathParts = parseResourcePath(resource.uri); | |
| let current = root; | |
| for (let i = 0; i < pathParts.length - 1; i++) { | |
| const part = pathParts[i]; | |
| if (!current.children.has(part)) { | |
| current.children.set(part, { name: part, children: new Map(), isFiltered: true }); | |
| } | |
| current = current.children.get(part)!; | |
| } | |
| const fileName = pathParts[pathParts.length - 1] || resource.name; | |
| current.children.set(resource.uri, { | |
| name: fileName, | |
| resource: { ...resource, serverName }, | |
| children: new Map(), | |
| isFiltered: true | |
| }); | |
| } | |
| function cleanupEmptyFolders(node: ResourceTreeNode): boolean { | |
| if (node.resource) return true; | |
| const toDelete: string[] = []; | |
| for (const [name, child] of node.children.entries()) { | |
| if (!cleanupEmptyFolders(child)) { | |
| toDelete.push(name); | |
| } | |
| } | |
| for (const name of toDelete) { | |
| node.children.delete(name); | |
| } | |
| return node.children.size > 0; | |
| } | |
| cleanupEmptyFolders(root); | |
| return root; | |
| } | |
| export function countTreeResources(node: ResourceTreeNode): number { | |
| if (node.resource) return 1; | |
| let count = 0; | |
| for (const child of node.children.values()) { | |
| count += countTreeResources(child); | |
| } | |
| return count; | |
| } | |
| export function sortTreeChildren(children: ResourceTreeNode[]): ResourceTreeNode[] { | |
| return children.sort((a, b) => { | |
| const aIsFolder = !a.resource && a.children.size > 0; | |
| const bIsFolder = !b.resource && b.children.size > 0; | |
| if (aIsFolder && !bIsFolder) return -1; | |
| if (!aIsFolder && bIsFolder) return 1; | |
| return a.name.localeCompare(b.name); | |
| }); | |
| } | |